算法设计与分析 作业三 纯答案

题目一------单源最短路 考场标准时间15m

维护S Q表,Q按照从小到大的价值排序,每次选最小代价的点出来探索。

翻译:

在给定的带权有向图上运行Dijkstra算法,计算从顶点 a 出发的最短路径树(shortest-path tree)

具体要求:

在每一次迭代(循环)中,请展示以下四个中间结果:

  • (a) 从**优先队列(priority queue)**中选出的顶点;

  • (b) 每个顶点当前的最短距离估计值 dv

  • (c) 每个顶点的前驱节点 πv(即路径上的上一个节点);

  • (d) 已确定集合 S 的内容,以及剩余优先队列 Q 的内容。

最后:

画出或列出最终生成的最短路径树

解析

我的答案

维护S Q表,Q按照从小到大的价值排序,每次选最小代价的点出来探索。

题目二------多源最短路 考场标准时间40m

原理是由于DJ法无法处理负权边问题,因此引入一个"零势能面",将负权边转为正权边。

首先引入一个超级原点,就是零势能面,然后计算所有点到原点的最短路,用BellmanFOrd即可。

遍历所有变更新到无变化。

然后记录所有点到原点的最短路长度(相当于海拔高度有正有负),然后就能得到最低的海平面。

我们的任务就是以最低的海平面为0m。

因此引入变化势能函数尖w(A,B)=w(A,B)+h(A)-h(B)

这样算出来的新权重就是全为正的,可以用DJ法。

接下来就是用多源DJ法计算多源最短路,每次算出来一个点都要计算转换后的权重,也就是

σ(A,B)=δ(A,B)+h(B)-h(A),注意,这里是后减前,是为了还原到原始权重去计算!!!

这个σ就是最短路距离了!

翻译:用约翰逊算法解决多源最短路的问题

总体思路:

将负权边转换为非负权边,引入势能函数,保证负权非负

1.引入超级原点S,将S与所有节点相连,权重为0

2.列出所有边

3.使用Bellmanford进行单元最短路计算,列边松弛列dΠ,得到S到各个点的最短路

4.计算势能 h(v)=δ(s,v)

5.计算等效边权w(u,v)_hat

6.这时就可以迪杰斯特拉了

解析

我的答案

题目三------找最短增广路 考场标准时间16m

翻译:

展示 Edmonds-Karp 算法在上述流量网络上的执行过程。请在每次迭代中,展示流量网络、残余网络、增广路径以及增加的流量(增量流)。最后,展示最大流量以及对应的最小割。

解析

我的答案

题目四------线性规划问题 考场标准时间25m

翻译:

给定以下线性规划问题 (LP),

最大化 z=x1+2x2

约束条件 (s.t.):

x2≤2x1+2

x1+3x2≤27

x1+x2≤15

2x1≤x2+18

x≥0

通过几何论证和单纯形法计算其最优解。

解析

流程参考下面:

先进行STF和RLF验证,符合形式后再进行求解即可。

我的答案

题目五------二分图匹配问题(匈牙利树算法) 考查标准时间12m

翻译:

解析

我的答案

相关推荐
aaaameliaaa1 小时前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
Jerry1 小时前
LeetCode 977. 有序数组的平方
算法
Turbo正则1 小时前
群论学习入门 | 群论与李群的基本概念
人工智能·学习·算法·抽象代数
sugar__salt1 小时前
手撕字符串算法:反转、回文、验证回文 Ⅱ 完整拆解
javascript·算法·面试·职场和发展
To_OC2 小时前
从一行报错开始,把字符串反转、回文算法连带着包装类一起捋明白
javascript·算法·api
LCG米2 小时前
机器人控制系统与运动规划:从RRT算法到ROS move_base实战
算法·机器人
QiLinkOS2 小时前
第三视觉理解徐玉生与他的商业活动(26)
大数据·c++·人工智能·算法·开源协议
手写码匠2 小时前
手写 LLM 结构化输出引擎 —— 从 JSON Schema 约束到类型安全的数据提取
人工智能·深度学习·算法·aigc
zhiSiBuYu05172 小时前
重排序(Rerank)提升检索准确率实战指南
开发语言·python·算法
月疯2 小时前
华为手环的部分功能
算法