文章

36

粉丝

0

获赞

0

访问

3.8k

头像
2009年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年9月18日 11:46
阅读数 103

```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)

```

算法执行过程

  1. 初始路径:[A],u=A

  2. 选择min(A→B=6, A→C=7),加入B

  3. 路径:[A→B],u=B

  4. 选择min(B→D=2, B→C=4),加入D

  5. 路径:[A→B→D],u=D

  6. 加入E(D→E=3)

  7. 最终路径:[A→B→D→E],总权重=6+2+3=11

总流程如下图


 

局部最优,但未必是全局最优,实际上存在这一条最短路径,总权重=7+1=8


 

算法缺陷

  1. 局部最优≠全局最优:贪心选择时未考虑后续路径影响

  2. 缺乏回溯机制:无法撤销已做的局部选择

  3. 路径依赖问题:早期选择会限制后续选择空间

Dijkstra算法通过:

  1. 维护所有候选路径的当前最短距离

  2. 每次选择全局最近的未处理顶点

  3. 动态更新邻接顶点的距离估计


评分及理由

(1)得分及理由(满分10分)

学生通过构造具体图例(A到E的最短路径问题)和逐步执行算法过程,展示了题目所给方法(贪心策略)不能保证得到最短路径:算法得到路径A→B→D→E(总权重11),但实际存在更短路径A→C→E(总权重8)。学生正确指出了方法缺陷(局部最优不等于全局最优、缺乏回溯、路径依赖),并对比了Dijkstra算法的正确性(维护全局距离、动态更新)。回答完整且论证清晰...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发