带聚合点的取货和送货 VSP

Pickup and delivery VSP with aggregation points

我正在尝试仅使用 or 工具解决一辆车的简单取货和送货 VRP。 我一直在关注文档 https://developers.google.com/optimization/routing/pickup_delivery,当所有上车点和下车点彼此不同时,似乎一切都按预期进行。 pickups_deliveries 数组如下所示:

data['pickups_deliveries'] = [
        [1, 6],
        [2, 10],
        [4, 3],
        [5, 9],
        [7, 8],
        [15, 11],
        [13, 12],
        [16, 14],
    ]

但是,我们假设有多个聚合点,其中有多个包裹要取,快递员没有限制 space。我试图修改上面的示例以在多个 pickup/delivery 对中使用相同的拾取索引:

data['pickups_deliveries'] = [
        [1, 6],
        [2, 10],
        [2, 3],
        [2, 9],
        [1, 8],
        [1, 11],
        [2, 12],
        [2, 14],
    ]

我期望的结果是只有 2 个取件站和 8 个送货站,但不幸的是,当我 运行 求解器时,它 returns None.

solution = routing.SolveWithParameters(search_parameters) # returns None

有没有办法解决这个问题,还是我遗漏了更重要的东西?我是这个图书馆的新手,所以任何指导都将不胜感激。

您必须复制节点 2 才能让它只参与一个 P&D。

请注意,每个地点只能参观一次!