文章
36
粉丝
0
获赞
0
访问
3.8k
```mermaid
flowchart LR
A(a) -->|6| B(b)
B -->|2| D(d)
B -->|4|C(c)
A -->|7| C(c)
C -->|10| D(d)
C -->|1| E(e)
D -->|3| E(e)
```
算法执行过程
初始路径:[A],u=A
选择min(A→B=6, A→C=7),加入B
路径:[A→B],u=B
选择min(B→D=2, B→C=4),加入D
路径:[A→B→D],u=D
加入E(D→E=3)
最终路径:[A→B→D→E],总权重=6+2+3=11
总流程如下图
局部最优,但未必是全局最优,实际上存在这一条最短路径,总权重=7+1=8
算法缺陷
局部最优≠全局最优:贪心选择时未考虑后续路径影响
缺乏回溯机制:无法撤销已做的局部选择
路径依赖问题:早期选择会限制后续选择空间
Dijkstra算法通过:
维护所有候选路径的当前最短距离
每次选择全局最近的未处理顶点
动态更新邻接顶点的距离估计
评分及理由
(1)得分及理由(满分10分)
学生通过构造具体图例(A到E的最短路径问题)和逐步执行算法过程,展示了题目所给方法(贪心策略)不能保证得到最短路径:算法得到路径A→B→D→E(总权重11),但实际存在更短路径A→C→E(总权重8)。学生正确指出了方法缺陷(局部最优不等于全局最优、缺乏回溯、路径依赖),并对比了Dijkstra算法的正确性(维护全局距离、动态更新)。回答完整且论证清晰...
登录后发布评论
暂无评论,来抢沙发