当前位置: 首页 > 知识库问答 >
问题:

如何限制重新加载节点具有分离的VehicleVar的域?

轩辕弘雅
2023-03-14

我想将车辆var的域限制为非仓库节点和重新加载节点。此外,重新加载是可选的。例如,假设我有8个节点和2辆车辆,

车辆1:容量(3)

车辆2:容量(4)

0-

1 -

2 -

3 -

4 -

5 -

6 -

7-

预期访问顺序:

车辆1-

车辆2-

我试图实现这一目标的方式:

重新加载节点(1)没有分离。(编辑)

#[routing.AddDisjunction([manager.NodeToIndex(i)], 0)
#for i in data['reloadNodes']]  # without penalty

增加了限制

for node_i in range(routing.nodes()):
  index_i = manager.NodeToIndex(node_i)  # internal index
  if node_i is depot_node: continue # Leave depot node
  allowed_vehicles = list(data['vehiclesAllowed'][node_i]) # Vehicles allowed to visit `node_i`
  if node_i in data['reloadNodes']:
     allowed_vehicles.insert(0, -1) # because reload nodes are optional.
  routing.VehicleVar(index_i).SetValues(allowed_vehicles)

但通过这种方式,我得到了一个访问所有重新加载节点的结果(在本例中,车辆2在其最后一个仓库节点之前访问了重新加载节点2,如图[0,6,7,2,0])。我尝试了更多的重新加载节点,但每次都有相同的行为。

这很好,因为分离不存在,因此访问了每个节点。(编辑)

然后我尝试了析取(取消了point 1st的代码段注释)

在这次更改之后,我在50秒的运行时间后没有得到任何结果,状态为“ROUTING\u FAIL\u TIMEOUT”

注意:尝试此操作时,对trip max\u time和max\u length没有限制。

请帮我解决这个问题,我觉得我对析取做了一些错事:)

共有1个答案

董奇思
2023-03-14

节点i的车辆变量索引不是节点i,而是索引管理器。节点索引(node\u i)。

其余代码似乎是正确的。

 类似资料:
  • 我有一个ionic单页web应用程序,用户在其中完成一些信息并动态创建一些组件(新列、卡片等)。单击按钮后,我想在初始状态下完全重新加载页面。我尝试过角度生命周期挂钩,但似乎没有触发它们,因为路线没有变化。我也尝试了这条路线。导航(['home'),但它不起作用。我不需要保存任何数据。只需重新加载所有内容。

  • 问题内容: 我有一个页面正在从第三方(新闻提要)加载脚本。脚本的url在加载时动态分配(根据第三方代码)。 然后从中加载的脚本创建并加载具有新闻提要中各种内容的元素,并以漂亮的格式等将元素加载到其中(传入ID“ div1287”,以便脚本知道在何处加载内容)。 唯一的问题是,它只会加载一次。我希望它每n秒重新加载一次(从而显示新内容)。 所以,我想我会尝试一下: div清除后,我得到警报,但是没有

  • 我目前正在尝试将类加载到我的应用程序中,这样我就可以过滤掉那些不包含任何test/-方法的类。我希望以后在我的应用程序中运行这些测试。 到目前为止,一切都很好-除了我正在使用的(或者可能是任何)似乎没有实际重新加载位于我的应用程序类路径上的类。 更准确地说,我的应用程序的用户首先选择一些源文件。然后将它们复制到临时位置,并将许多正则表达式匹配/替换对应用于原始源文件的副本。接下来,拷贝被编译,然后

  • 有没有使用Qpromise库限制promise并发的方法? 这个问题有点与如何限制Qpromise并发有关? 但问题是我正试图这样做: 真正的用例是: 从DB获取帖子 循环DB中的每个帖子,如 对于每个帖子做task1,task2,task3(检索社交计数器,检索评论计数等) 在DB中保存新的文章数据。 但问题是node同时执行所有帖子的所有任务,比如同时向facebook询问500篇帖子的“喜欢

  • 在我的ES集群中,我有10个碎片和2个副本,有5个节点。我只是在集群中添加了一个新节点,它与集群同步了。状态为绿色,根据集群API,我们现在在集群中有6个活动数据节点。但是,当我选中`'http://localhost:9200/_cat/shards'时,没有为该节点分配碎片。因此,没有弹性查询指向这个新添加的节点。该节点的日志文件中没有什么特别之处: 对如何解决这个问题有什么特别的意见吗?

  • 我已经创建了一个XSLT,我想知道如何在一组标记之间复制所有节点,并在底部添加另一个标记。我创建了XSLT,它具有确定要添加哪个标记以及应该调用什么的所有逻辑。然而,我现在遇到的问题是,我不能复制所有其他标签了。以下是有关文件: XSLT 输入 电流输出 期望的产出