首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解JSprit VRP约束

理解JSprit VRP约束
EN

Stack Overflow用户
提问于 2017-08-24 18:00:33
回答 1查看 1.7K关注 0票数 1

我面临一些现实世界的VRP优化问题,并想踢轮胎的jsprit。我有一组具有相关技能约束的作业;一组用户来为那些具有技能限制和时间窗口的作业提供服务;以及基于lat的基于上述所有这些的坐标。

我一直在运行一些示例,如VRPWithBackhaulsExample,因此我可以看到,我需要设置一组ConstraintManagers,但在以下领域将域映射到jsprit概念时遇到了困难:

  • 如何用JSprit输入来表示lat-lons?这些例子似乎是在二维空间中使用点。看来我需要使用VehicleRoutingTransportCosts,但我不清楚如何做到这一点。
  • 在非交付模型中是否有使用时间窗口的例子?我知道这个职位,但它似乎与我上面描述的不同的模型。

我只是想得到正确的方向,任何的指导欢迎。

EN

回答 1

Stack Overflow用户

发布于 2017-08-28 17:40:27

如何用JSprit输入来表示lat-lons?

您可以使用正常的lat/long (例如51.5287718, -0.2416806)输入。如果没有显式设置距离矩阵,Jsprit使用欧氏距离计算器。见代码在这里这里

除了默认的欧氏距离计算器外,它们还有一个大圆距离/成本计算器,它使用Haversine公式。您只需要在构建问题之前调用.setRoutingCost(新的GreatCircleCosts()),请参阅这里

如果你需要道路距离,那么你必须自己生成一个距离矩阵。您可以使用类似谷歌地图距离矩阵API图形矩阵API (我们目前使用后者是因为Google许可限制),例如,您可以扩展AbstractForwardVehicleRoutingTransportCosts类,对一个距离矩阵服务进行API调用,然后执行类似于vrpBuilder.setRoutingCost(instanceOfYourCustomDistanceMatrix)的操作。

如果您不想在Java级别上工作,开放式物流(ODL)工作室可以很好地处理这类事情。查看车辆路径和调度教程,了解ODL如何使用Graphhopper为您构建距离矩阵。

在非交付模型中是否有使用时间窗口的例子?

不确定你要求的是什么,但是时间窗口对于服务工作也是有好处的。

无耻的插件:如果您不想编写任何Java,并且不想设置ODL,您可以在intelligentrouting.io使用我们的web应用程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45868165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档