Java 在Google或tools的VRP中,如何强制执行某些节点不应首先访问和最后访问的硬约束

Java 在Google或tools的VRP中,如何强制执行某些节点不应首先访问和最后访问的硬约束,java,or-tools,vehicle-routing,Java,Or Tools,Vehicle Routing,我试图强制执行一个约束,即某些节点不应在行程开始时或行程结束时访问VRP问题。有没有办法在谷歌或谷歌工具中强制实施这种约束? 仅供参考,我使用的语言是java。最简单的方法是调整距离矩阵,以便“第一个”的唯一传入弧来自仓库,最后一个的唯一传出弧来自仓库。您可以尝试修改nextVar变量的范围 例如,禁止每辆车的arc启动->索引 爪哇: long-toIndex=manager.nodeToIndex(索引); 对于(int i=0;i”+到索引); routing.nextVar(fromIn

我试图强制执行一个约束,即某些节点不应在行程开始时或行程结束时访问VRP问题。有没有办法在谷歌或谷歌工具中强制实施这种约束?
仅供参考,我使用的语言是java。

最简单的方法是调整距离矩阵,以便“第一个”的唯一传入弧来自仓库,最后一个的唯一传出弧来自仓库。

您可以尝试修改nextVar变量的范围

例如,禁止每辆车的arc
启动
->
索引

爪哇:

long-toIndex=manager.nodeToIndex(索引);
对于(int i=0;i”+到索引);
routing.nextVar(fromIndex).removeValue(toIndex);
}
.Net

long-toIndex=manager.NodeToIndex(索引);
对于(int i=0;i{toIndex}”);
routing.NextVar(fromIndex).RemoveValue(toIndex);
}
蟒蛇

to_index=manager.NodeToIndex(索引);
对于范围内的i(车辆编号):
from_index=routing.Start(i)
打印(f“禁止连接{from_index}->{to_index}”)
routing.NextVar(从索引).RemoveValue(到索引)
对于
索引
->
结束
节点基本相同

爪哇:

long fromIndex=manager.nodeToIndex(索引);
对于(int i=0;i”+到索引);
routing.nextVar(fromIndex).removeValue(toIndex);
}
.Net

long fromIndex=manager.NodeToIndex(索引);
对于(int i=0;i{toIndex}”);
routing.NextVar(fromIndex).RemoveValue(toIndex);
}
蟒蛇

from_index=manager.NodeToIndex(index);
对于范围内的i(车辆编号):
to_索引=路由。结束(i)
打印(f“禁止连接{from_index}->{to_index}”)
routing.NextVar(从索引).RemoveValue(到索引)

除官方文档外,是否有任何教程、参考资料或工具可供学习。