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

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

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

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

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

解答:

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

步骤:

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

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

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

相关推荐
brave and determined几秒前
可编程逻辑器件学习(day24):异构计算:突破算力瓶颈的未来之路
人工智能·嵌入式硬件·深度学习·学习·算法·fpga·asic
电摇小人11 分钟前
科学备赛今年NOIP!!
java·开发语言
2301_8035545215 分钟前
每日做面经-25.11.16
开发语言
菜鸟-0118 分钟前
上位机---QT
开发语言·qt
她说彩礼65万21 分钟前
C# Lambda 表达式
开发语言·c#
未若君雅裁22 分钟前
LeetCode 18 - 四数之和 详解笔记
java·数据结构·笔记·算法·leetcode
Bug快跑-123 分钟前
Java、C# 和 C++ 并发编程的深度比较与应用场景
java·开发语言·前端
2501_9411114629 分钟前
高性能计算集群部署
开发语言·c++·算法
AIpanda88834 分钟前
AI销冠系统和AI提效软件系统是什么?主要特点和应用场景有哪些?
算法
Moe4881 小时前
ConcurrentHashMap 重要方法实现原理和源码解析(二)
java·后端