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

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

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

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

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

解答:

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

步骤:

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

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

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

相关推荐
小江的记录本11 小时前
【JEECG Boot】 JEECG Boot——数据字典管理 系统性知识体系全解析
java·前端·spring boot·后端·spring·spring cloud·mybatis
卖男孩的小火柴.11 小时前
java内置方法总结及基础算法
java·算法
旖-旎11 小时前
链表(两两交换链表中的节点)(2)
数据结构·c++·学习·算法·链表·力控
赫瑞11 小时前
Java中的日期类
java·开发语言
XWalnut11 小时前
LeetCode刷题 day8
算法·leetcode·职场和发展
吕司11 小时前
Linux线程同步
linux·服务器·开发语言
程序员木圭11 小时前
07-数组入门必看!Java数组的内存分析02
java·后端
前端技术11 小时前
ArkTS第三章:声明式UI开发实战
java·前端·人工智能·python·华为·鸿蒙
带刺的坐椅11 小时前
RFC 9535:JSONPath 的标准化之路
java·json·jsonpath·snack4·rfc9535
神の愛11 小时前
java日志功能
java·开发语言·前端