You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MemgraphDB疑问:WSHORTEST算法查询为何未选择绿色线路?

问题分析与解答

核心原因

*WSHORTEST算法是基于边的time属性计算总时间最短的路径,而非优先选择同一条线路的路径。它只会挑选累加时间最少的路径,完全不考虑线路是否一致。

具体验证与解释

  1. 检查绿色线路直连边的时间
    你看到Nollendorfplatz与Kurfürstenstraße之间有三条直连线路,但绿色线路的这条直连边的time值可能比中转其他线路的总时间还要高。比如算法选择的路径可能是:Uhlandstraße → [某中间站] → Kurfürstenstraße,两段边的时间加起来比绿色线路直连的时间更短。

  2. 验证查询建议
    你可以运行以下查询,单独查看绿色线路直连边的时间(注意替换成数据中绿色线路的实际标识,比如U2):

    MATCH (s1:Station {name: "Nollendorfplatz"})-[r:CONNECTED_VIA]-(s2:Station {name: "Kurfürstenstraße"})
    WHERE r.line = "U2" 
    RETURN r.time;
    

    再运行查询查看算法返回路径的总时间,对比两者:

    MATCH path=(s1:Station {name: "Uhlandstraße"})-[:CONNECTED_VIA *WSHORTEST (r, n | r.time)]-(s2:Station {name: "Kurfürstenstraße"})
    RETURN 
      path, 
      reduce(totalTime = 0, r IN relationships(path) | totalTime + r.time) AS total_time;
    
  3. 补充说明
    你的第二个查询是直接匹配两站之间的所有直连边,所以能看到三条线路;但*WSHORTEST是全局遍历找总时间最短的路径,哪怕需要中转,只要总时间更短就会被选中。

内容的提问来源于stack exchange,提问作者Martin Fonichy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:45:01