1

我住在克罗地亚的斯普利特,一家城市公交公司最近购买了一个新软件,它的作用是:如果我是一名乘客,并且正在公交车站等车,那么我在上面有一个巨大的监视器可以看到公交代码和他到我的车站所需的时间。问题是,在拥有该软件的两年时间里,我从未见过它的到达时间是非常准确的。我知道 GPS 数据可能不准确,但这……这让我非常沮丧,我决定尝试为我的大学 CS 期末考试写一个类似的应用程序。问题是我在过去几天广泛搜索了网络,但我找不到好的起点。所以我的问题是:你有没有参与过这样的项目,如果有的话,你能给我一些指导,比如教程,或有关该主题的书籍?我感谢任何形式的输入。如果我在问题本身方面犯了错误,请随时关闭它。谢谢!

4

1 回答 1

4

你可能会有:

  • 车辆对象,包含每个车辆的位置、分配的路线、路线上的行驶方向、下一个预定停靠点、上一个预定停靠点、上一个预定停靠点的到达时间
  • 路线数组,包括停靠点列表和保存每条路线停靠点之间历史过境时间的数据结构

现在,对车辆位置的更新推送到车辆对象。

当您想要更新车站的显示时,查找通过该车站的所有路线,并为每条路线显示该路线上下一辆车的预计到达时间。

预计到达时间结构是其中的核心。通过假设停靠点之间的距离和平均行驶速度来播种。

现在,每次车辆到达停靠点时,计算从最后一站到达那里所需的实时时间,并使用它来更新按半小时增量(或你有什么)划分的平均运输时间,你也可以 bin按季节和/或星期几。分箱的目的是隐含地考虑按一天中的时间、一周中的一天和/或季节变化的交通拥堵。假设其他条件均质,您最终将收敛到对每个车站之间的运输时间的合理估计。

您可能会发现使用卡尔曼滤波器很有用。

如果您想调查一下,更远的车站之间的旅行时间估计可能比相邻车站之间的旅行时间更准确。高阶马尔可夫链也可能有助于描述运输时间的基本统计数据。

只是想法。

于 2013-01-11T13:22:25.030 回答