问题描述
我成功地重新创建了 pickup and delivery vehicle routing problem,但我想添加一个额外的约束,但我在任何地方都找不到如何实现它:我希望我的车辆在取货后始终返回仓库。如何强制执行此约束?似乎如果我添加一个析取,那么求解器最终可能不会交付到特定的交付位置。
解决方法
回答我自己的问题:
@for (int i = 0; i < Products.Count(); i++)
{
<tr>
<td>
<span> @Model.Products[i].ProductName </span>
@foreach (var item in Model.Products[i].ProductCategories)
{
<span>@string.Join(",",item.Category.CategoryName)</span>
}
</td>
</tr>
,
您可以在初始化时直接定义车辆仓库(开始和/或结束):
# Create the routing index manager.
self.manager = pywrapcp.RoutingIndexManager(len(locations),len(vehicles),start_depots,end_depots)
self.routing = pywrapcp.RoutingModel(self.manager)
start_depots 和 end_depots 都是列表,车辆的大小。相同的 depot 可以在两个列表中