【问题标题】:First Fit Decreasing Algorithm on CVRP in OptaplannerOptaplanner中CVRP的首次拟合递减算法
【发布时间】:2018-08-21 14:46:05
【问题描述】:

我正在使用 Optaplanner 中的 FFD 算法作为我的 CVRP 问题的构造启发式。我以为我从 bin Pick 中理解了 FFD-Alg,但是在 CVRP 上的 OP 中应用时我不理解它背后的逻辑。所以我的想法是,它关注需求(按降序对城市进行排序,从最高需求开始)。为了证明我的假设,我将城市坐标固定在一个位置,所以到所有城市的仓库的距离都是一样的。然后我把要求从大变小。但它不会在结果文件中按降序排列城市。

输入是:城市 1:需求 16,城市 2:需求 12,城市 3:需求 8,城市 4:需求 4, 城市 5:需求 2。

3 辆车,每辆车可容纳 40 辆。

我的想法:V1

谁能解释一下这个理论?另外,我想知道反过来会发生什么,相同的容量,但每个客户的位置不同。我也试过了,但它也不会从最远的城市开始对城市进行排序。

谢谢!

【问题讨论】:

    标签: optaplanner heuristics


    【解决方案1】:

    (脑残)

    与非 VRP 问题不同,选择“难度比较”来确定“首次拟合递减”的“递减难度”并不总是很清楚。我已经用几种形式进行了实验 - 例如基于到站点的距离、到站点的角度、纬度等。您可以在示例中找到所有这些形式的难度比较器,通常是 TSP。

    一个常见的陷阱是在启用附近选择之前调整比较器:首先调整附近选择。如果您正在处理大型数据集,“depo 角度”比较器会表现得更好,只是因为附近选择和/或分区搜索尚未激活。无论如何,一如既往:您需要使用optaplanner-benchmark 来完成此类工作。

    话虽如此,在 TSP 用例中,First Fit Decreasing 算法的结果比 Nearest Neighbor 算法(这是我们使用的另一种构造启发式算法)更差。有有限的支持atm)。当然,两者都需要本地搜索来进一步改进。然而,将最近邻算法翻译成 VRP 是困难的/模棱两可的(至少可以这么说):我正在/正在做这样的翻译,我称之为 Bouy 算法(在以 Bouy 开头的 vrp 示例)。它可以工作,但它还不能与 IIRC 附近的选择很好地结合。

    哦,还有 Clarke 和 Wright 储蓄算法,它非常适合小型纯 CVRP 案例。但是在更大的数据集上会遇到 BigO(= 缩放)问题,并且当添加其他约束(例如时间窗口、技能要求、午休时间......)时,它也会变得困难/模糊。

    长话短说:对于现实世界中的高级 VRP 案例来说,最佳构造启发式方法仍然没有定论。 optaplanner-benchmark 将在这方面为我们提供帮助。尽管所有学术论文都在谈论他们在小型数据集上的简单形式 VRP 的完美 CH...

    【讨论】:

    • 非常感谢!是的,我想知道没有实施经典的学术启发式方法,但现在它变得更加清晰了。
    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多