问题标签 [jsprit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
374 浏览

java - JSPRIT - 将最佳解决方案作为 JSON 输出到字符串

我已经将 JSPRIT 写入 Jersey 2 RESTful 服务器。我希望我们的应用程序使用问题的 JSON 字符串调用服务器 (POST),将 JSON 请求提供给 JSPRIT,然后将最佳解决方案输出为 JSON。

一切都很好......除了。我无法弄清楚如何将解决方案输出到 JSON 字符串。所有示例都使用写入磁盘文件的 VrpXMLWriter。我想将输出作为 JSON 写入字符串 - 而不是文件。

我和我的朋友 Google 花了几个小时,但还没有解决。

有人可以帮忙吗?

0 投票
0 回答
3929 浏览

java - Optoplanner vs jsprit vs Google OR 工具

我正在尝试用时间窗口限制来解决 TSP。我正在评估以下工具。

  1. OptaPlanner - 由 Jboss 社区支持。不是特定于 TRP,而是通用约束求解器引擎。

  2. Jsprit - 不确定它的支持。它是由 GraphHopper 开发的?它在 GitHub 上列出了 Graph Hopper 的子项目之一。

  3. Google OR 工具 - 它是用 C++ 编写的。但是可以在java中运行。

上述每个工具的优点和缺点是什么。市场上有没有更好的开源/付费工具?

0 投票
1 回答
1958 浏览

optaplanner - 具有实际道路距离的 TSPTW

是否可以使用 OptaPlanner 或 jsprit 解决时间窗(具有实际道路距离)的不对称旅行推销员问题?

0 投票
1 回答
200 浏览

jsprit - 多次取货,每次都使用多辆卡车进行多次交付

我对路由相当陌生。我想建立一个像这样工作的模型。

我有两辆卡车 A 和 B。卡车 A 会从仓库提货。它还需要从第二个仓库取货。由于时间窗口,它很可能在第 2 个取件地点时间窗口之前的初始取件之后进行两次交付。

从第一个仓库取货的卡车 B 应该只是运送物品。

显然,我需要在 2 号仓库的提货和最终交付之间建立关系,这样 jsprit 就不会尝试将一些 2 号仓库的物品分配给卡车 B。我还需要确保交付是在捡起。

结果看起来像:

我花了几个小时和我的朋友谷歌一起拖网,但还没有找到解决方案。

似乎它适合Stackoverflow_RelatedJobs_13_and_21_inSameRoute_21_first 模型。

给出的示例非常基本,涉及两个工作和一个路线。我需要处理多条路线和多条送货的取货。

我知道这将涉及软约束等,但我不知道它们应该是什么或如何创建它们。

有没有人已经这样做并且可以提供一些帮助?

0 投票
0 回答
118 浏览

jsprit - Jsprit 1.7-RC1 中没有 VehicleRoutingAlgorithmBuilder 类

VehicleRoutingAlgorithmBuilder 类在 1.7-RC1 版本中不存在,这就是我无法使用代码的原因:

有没有其他方法可以重写上面的代码?

0 投票
0 回答
139 浏览

jsprit - 如果在目的地,JSPrit 尽早交付

提取多件货物,在中心位置下车。问题是,有时车辆会在中心位置装满并放下东西,但仅足以完成路线。如果它已经在仓库,我希望它能够放下它所拥有的一切。

见下文,它将作业 #3 交付给仓库,在车辆中留下 4 个其他物品(容量为 5)。然后在交付所有东西之前拿起最后一件事。

什么是模拟一些时间或金钱成本的好方法,以确保货物不会在车辆上花费任何不必要的时间?我想要的只是一条最佳的取件/托运路线。

0 投票
1 回答
425 浏览

jsprit - 带有时间窗口的 JSPIT 多天路线

我正在为几天单程旅行的特定问题分析带有时间窗口的 JSPRIT 功能。

卡车正在装载包裹,这些包裹将在几天内(不是一天)交付。这是因为交货点之间的距离很大。每个站点的营业时间为 8:00 至 16:00,因此有硬时间窗口。因此,在第一天,卡车在 16:00 之前交付了一些包裹,并且不允许在同一天再交付。

然后司机应该进入另一个交付点,该点将在第二天从 8:00 到 16:00 再次开放,程序继续进行,直到所有包裹都被交付并且轨道可以返回其仓库。

是否可以在 JSPRIT 中实现这样的场景?

0 投票
1 回答
936 浏览

jsprit - jsprit 单次取件和多次交付的发货

是否可以进行具有单个取货点但具有多个交货点的货件?

我的一个例子是一个自行车信使,它必须将信件从一个取件点分发到多个地址,信使必须先去取件点,然后再送信。我尝试为此制作多个货件(每个地址一个货件),但是取件服务时间没有意义,因为例如取一封信与 100 封信没有太大区别。

然后,我尝试制作单独的 Pickup 和 Delivery 工作。我做了一些限制,让取货作业在其他送货作业之前先完成。然后我阅读了 Delivery 类的文档,它指出该工作意味着在车辆起点(或仓库)取货,所以这种方法也没有意义。

还有其他方法吗?

0 投票
1 回答
685 浏览

intellij-idea - 如何在服务器上使用jsprit代码

我是 Web 开发的新手,并尝试在我的网站上使用 jsprit ( https://github.com/graphhopper/jsprit ),在那里我可以将传入的订单位置传递给 jsprit 并从我当前的位置获取优化的路径。我不知道如何在服务器上安装此代码。有人可以指导我。(我不知道如何使用用 Intellij 编写并在实际服务器上的本地服务器上测试的代码)。

0 投票
0 回答
276 浏览

graphhopper - 让优化标志在本地 GraphHopper 路由服务上工作

我已经在本地服务器上设置了本地 GraphHopper 服务,它可以像宣传的那样工作。我可以通过休息将一组点传递给它,然后取回一个快乐的小 JSON 文件,其中包含方向和编码的路线。当然,“开箱即用”的路由 API 缺少通过 graphhopper.com 在付费路由 API 服务中可用的切换,即 optimize=true/false 标志。这个小添加不仅会在您通过的点之间进行路由,而且当设置为 true 时,还会将它们重新排序为最佳路线。

现在我想获得这个额外的功能需要以某种方式“烘焙”某种级别的jsprit代码。然而,我对 Java 和编译代码的理解程度在这里严重不足。查看众多 jsprit 站点,我能找到的最佳帮助是“查看示例源代码”。是否有任何将 jsprit 构建到标准 graphhopper JAR 文件中的指南,或者是否有人知道已经内置此功能的任何预构建 JAR?这可能是一个长镜头,但任何帮助将不胜感激。