- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
寻找汽车的路线非常简单:您存储所有道路的加权图,您可以使用 Djikstra's algorithm [1].公交路线不太明显。对于公共(public)汽车,您必须表示诸如“等待 10 分钟等待下一类公共(public)汽车”或“步行一个街区到另一个公共(public)汽车站”之类的东西,并将这些输入到您的寻路算法中。
对于汽车来说,这甚至并不总是那么简单。在一些城市,一些道路是单向的,只在早上进城,单向在晚上只出城。一些先进的 GPS 知道如何在高峰时段避开繁忙的路线。
您将如何有效地表示这种时间相关图并找到路径?不需要可证明的最佳解决方案;如果旅行者想准时到达,他们会买辆车。 ;-)
[1] 在示例中提到的一个很棒的算法,因为每个人都听说过它,尽管 A* 是此应用程序更可能的选择。
最佳答案
我参与了瑞典斯德哥尔摩公共(public)交通的一个行程规划系统的开发。它基于 Djikstra 算法,但在访问系统中的每个节点之前终止。今天,当每个站点都有可靠的坐标可用时,我想 A* 算法会是最佳选择。
定期从多个数据库中提取有关即将到来的流量的数据,并将其编译成加载到我们搜索服务器集群内存中的大表。
成功算法的一个关键是使用基于行程和等待时间乘以不同权重的路径成本函数。在瑞典语中称为“kresu”时间,这些加权时间反射(reflect)了这样一个事实,例如,一分钟的等待时间通常相当于两分钟的旅行时间“不方便”。
面积您的旅程可以开始或结束的命名区域。公交车站可以是一个有两个车站的区域。具有多个站台的较大车站可以是一个区域,每个站台一个站点。数据:姓名、停靠点
停止包含所有公共(public)汽车站、火车站和地铁站的数组。请注意,您通常需要两个站点,每个方向一个,因为过马路或步行到另一个站台需要一些时间。数据:名称、链接、节点
链接您可以从该站点步行到达的其他站点列表。数据:其他站点,步行到其他站点的时间
线路/旅游您在公共(public)汽车上有一个号码和一个目的地。公共(public)汽车从一站出发,在到达目的地的途中经过几站。数据:号码、姓名、目的地
节点通常你有一个时间表,它应该在巡回赛的第一站和最后一站停留的时间最少。每次公共(public)汽车/火车经过一个站点时,您都会向数组中添加一个新节点。该表每天可以有数百万个值。数据:线路/行程、站点、到达时间、出发时间、误差范围、行程中的下一个节点
搜索与用于存储到达那里的方式和路径成本的节点数组大小相同的数组。数据:与前一个节点的反向链接(如果节点未访问则不设置),路径成本(未访问的无限)
关于algorithm - 仅通过公共(public)交通找到最佳路线的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/483488/
我正在研究使用 Kafka 的可能性 Masstransit在我们的信息系统上。公共(public)交通文档称 Kafka 可以使用,但作为 Rider ;由于必须使用传输,因此除了 Kafka 和
我正在将Azure服务总线与masstransit一起使用,如果消息类类型是从同一个项目继承的,那么它可以完美地工作,但是一旦消息是从另一个.net projet发送的,因此“messageType”
我正在将Azure服务总线与masstransit一起使用,如果消息类类型是从同一个项目继承的,那么它可以完美地工作,但是一旦消息是从另一个.net projet发送的,因此“messageType”
我在使用 MassTransit 3 时遇到以下问题。我正在将消息从 WebApi 发布到后端(作为连续 Web 作业运行)。当后端作业启动时,一切正常并且消息被正确接收。大约 20 分钟后,后端将停
我在使用 MassTransit 3 时遇到以下问题。我正在将消息从 WebApi 发布到后端(作为连续 Web 作业运行)。当后端作业启动时,一切正常并且消息被正确接收。大约 20 分钟后,后端将停
我正在开发一个 Journey Planner 网站。目前在这种情况下有一些简单的事情,即现在该网站只能规划公交路线,公交车的时间目前不可用。所以这意味着我们只有公交路线存储在数据库中,并且由于公交车
这可能是非常基本的,但由于某种原因我无法让它工作。 我正在使用公共(public)交通 Azure 服务总线包 v 5.5.6 连接到 Azure 上的服务总线队列。 已关注 Mass Transit
我在 Azure 上使用 MassTransit 并在总线上配置 MaxConcurrentCalls 时遇到问题。我有一个进程要求一次执行 1 条消息,但我无法使用总线配置来实现这一点。例如,在总线
我已经检查了有关 Scheduling with Azure Service Bus 的文档,但我不清楚如何从“断开的”总线发送消息。 以下是我如何配置在服务器上处理消息的服务: builder.Ad
我已经检查了有关 Scheduling with Azure Service Bus 的文档,但我不清楚如何从“断开的”总线发送消息。 以下是我如何配置在服务器上处理消息的服务: builder.Ad
我不会要求任何人为我构建一个应用程序。我只需要一些入门技巧。所以我想做的是: 能够绘制一些路线/方向,类似于 Google map 已有的有关城市本地交通的功能。为什么?首先,因为谷歌的数据库有点过时
只是做一些快速的尝试,以可能使用消息传递系统来处理良好解耦的工作流程系统中的文件。 人们发现使用上述每个框架的优点和缺点是什么?与使用 WCF 绑定(bind)和/或非 MSMQ 解决方案的手动 MS
我正在使用 Masstransit 和 Azure 服务 .net5。 我有两个应用程序: 网络 API。启动: services.AddMassTransit(x => { x.UsingAz
我正在使用 Masstransit 和 Azure 服务 .net5。 我有两个应用程序: 网络 API。启动: services.AddMassTransit(x => { x.UsingAz
关于 Android 和 Google Directions Service 的一些问题: Android 上是否有使用 Google 的路线服务的 native 方法,或者是否有任何不错的包装器框架
我是 Mass Transit 的新手,我想了解它是否对我的场景有帮助。我正在构建一个使用 CQRS 事件源架构实现的示例应用程序,我需要一个服务总线来将命令堆栈创建的事件分派(dispatch)到查
我是一名优秀的程序员,十分优秀!