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

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

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

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

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

解答:

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

步骤:

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

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

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

相关推荐
Memory_荒年1 分钟前
Spring Boot自动装配:告别“配置地狱”的智能管家
java·后端·spring
lxh01138 分钟前
重复的DNA序列
开发语言·javascript·ecmascript
nananaij9 分钟前
【LeetCode-02 最小偶倍数 python解法】
python·算法·leetcode
倾心琴心10 分钟前
【agent辅助pcb routing coding学习】实践4 kicad pcb 核心类层次关系
算法·agent·pcb·eda·routing
froginwe1110 分钟前
Web 词汇表
开发语言
im_AMBER14 分钟前
Leetcode 139 最后一个单词的长度 | 找出字符串中第一个匹配项的下标
开发语言·算法·leetcode
盐水冰15 分钟前
【烘焙坊项目】后端搭建(9)- 缓存实现及购物车相关功能开发
java·后端·spring
Frostnova丶16 分钟前
(6)LeetCode.42 接雨水
数据结构·算法·leetcode
gameboy03116 分钟前
在Nginx上配置并开启WebDAV服务的完整指南
java·运维·nginx
像污秽一样17 分钟前
算法设计与分析-习题4.4
数据结构·算法·排序算法·深度优先