4

我在遍历我tableLegs的公共汽车时间表时遇到问题,以查找乘客从 a 到 b 需要采取的一系列腿legID,例如乘客想要从LocIDof开始c并前往LocIDof p,我想要组成那次旅行LegID的一系列腿(01, 02, 04),希望这很容易理解。

桌腿

=============================================
LegID    startLocID   endLocID   departTime
 01          a           e        9:00
 02          e           i        10:00
 03          i           m        11:00
 04          i           q        11:00

表LegStops

=========================================
LegID     stopNo    LocID     TripTime
  01         1         a       0 min
  01         2         b       20 min
  01         3         c       30 min
  01         4         d       40 min
  01         5         e       60 min
  02         1         e       0 min
  02         2         f       20 min
  02         3         g       30 min
  02         4         h       40 min
  02         5         i       60 min
  03         1         i       0 min
  03         2         j       20 min
  03         3         k       30 min
  03         4         l       40 min
  03         5         m       60 min
  04         1         i       0 min
  04         2         n       20 min
  04         3         o       30 min
  04         4         p       40 min
  04         5         q       60 min

为了给你一个我在这里努力实现的基础,这是一个巴士网站,每次旅行都由不同的腿组成。

4

2 回答 2

1

此任务称为在图中搜索最短路径。存在一个Dijkstra 算法的实现,用于在 MySQL 存储过程方面解决这个问题。

但这可能需要您稍微更改表结构,因为该图仅使用两种类型的实体:节点和边。所以你应该把你的腿分解成边,然后在你得到边中最短的路径后推导出腿。

于 2012-11-01T07:59:07.120 回答
0

您可以为此使用 A* 搜索算法。参见http://en.wikipedia.org/wiki/A_star

于 2012-11-01T07:53:52.243 回答