一道算法期末应用题及解答

1.印刷电路板布线区划分成为n m 个方格,确定连接方格a 到方格b 的最短布线方案。

在布线时,只能沿直线或者直角布线,为避免交叉,已经布线的方格做了封锁标记,其他线路不允许穿过被封锁的方格,某待布线电路板如下图所示,灰色方格为已封锁位置:

(1)描述求解该问题的算法策略和解题步骤;

(2)针对方格中数据,求得从方格a 到方格b 的最短布线方案,并说明求解的全过程。

解答:

(1)、每个结点最多有4 个扩展方向,搜索的方向比较盲目,因此求最短布线比较适合采用FIFO 分枝搜索策略。

步骤:

  1. 开始时,唯一的活结点是a,进入活结点队;
  2. 从活结点队中取出队头成为E- 结点;
    3、对E- 结点寻找可行位置入队;
    4、重复该过程直到b 结点或者队为空;
    5、如果b 结点终止则倒推输出路径,否则输出失败

(2)、活结点的扩展轮次如下图中编号所示:

布线路径如图中箭头所示。

相关推荐
RFdragon1 小时前
分享本周所学——三维重建算法3D Gaussian Splatting(3DGS)
人工智能·线性代数·算法·机器学习·计算机视觉·矩阵·paddlepaddle
潜创微科技--高清音视频芯片方案开发5 小时前
2026年C转DP芯片方案深度分析:从适配场景到成本性能的优选指南
c语言·开发语言
Thomas.Sir5 小时前
第三章:Python3 之 字符串
开发语言·python·字符串·string
刘景贤5 小时前
C/C++开发环境
开发语言·c++
daidaidaiyu6 小时前
JMS, ActiveMQ 学习一则
java
weixin_704266056 小时前
SpringBoot全注解开发指南
java·spring boot·mybatis
星如雨グッ!(๑•̀ㅂ•́)و✧6 小时前
Webflux fromXXX对比
java
Dxy12393102167 小时前
Python 根据列表中某字段排序:从基础到进阶
开发语言·windows·python
Zero7 小时前
机器学习微积分--(1)核心思想
人工智能·算法·机器学习