货船数学优化
Mathematical Optimization for Cargo Ships

原始链接: https://research.google/blog/heuristics-on-the-high-seas-mathematical-optimization-for-cargo-ships/

本文讨论涉及集装箱的优化问题的解决方案。 挑战包括管理船舶和港口等变量、可承载集装箱数量的限制以及最大化集装箱运输总量的目标。 矩阵表示通常用于解决这些问题,其中列表示变量,行表示约束。 采用一种称为列生成的流行方法,该方法生成新列以提高真正问题的精度。 我们的团队创建了一个库,用于预测潜在的专栏生成,旨在通过数学编程平台 MathOpt 公开发布。 制定了两种策略来解决该问题:双列生成和 SAT 求解约束规划(CP-SAT)。 在双列生成中,使用最短路径算法结合线性规划同时解决互连网络设计和集装箱路由子问题。 尽管其适用性仅限于中等大小的实例,但这产生了经过验证的最佳答案。 对于 CP-SAT,约束求解技术与 CP-SAT 求解器一起使用。 它有效地解决了中小型网络的问题,但在面对全球运输场景时却失败了。 为了应对可扩展性挑战,引入了采用两种不同的本地搜索过程的启发式策略。 一种变体“大邻域搜索”保留了分辨率中的某些元素,通过缩小检查区域来提高可扩展性。 另一个版本,可变邻域搜索,跨时间表和网络探索不同区域,通过限制探索区域并结合领域专业知识来提高性能。 这两种策略都采用渐进主义来确保进步的良好基础。 此外,在优化期间考虑传输时间显着提高了整体答案质量。 然而,以前的解决方案由于难度增加而省略了运输时间。

在码头运营领域,一些挑战阻碍了最佳规划算法的实施。 首先,对生成的解决方案的解释和理解对于员工的接受度至关重要,否则,新技术可能会因不信任、潜在的失业以及担心管理意外错误而不会被采用。 其次,尽管准确的发票很重要,但经常发生错误,导致错失索取收入的机会。 由于复杂的边缘情况和法规,需要手动计算发票,因此需要自动化以最大限度地减少人为错误。 第三,与学术界相比,该行业面临的优化问题,例如泊位分配、配载计划和起重机拆分,在实践中仍然没有得到充分研究。 最后,工会的影响和对变革的抵制阻碍了先进优化技术的实施。 为了取得成功,技术人员必须与利益相关者进行有效沟通,并驾驭行业复杂的格局。 欢迎您进一步讨论中型码头和腹地运输公司的优化策略。 凭借制造、运筹学方面的背景以及在仓库和运输物流方面的工作经验,我热衷于推动该领域的改进。
相关文章

原文

Every optimization problem has three components: variables (e.g., ships and ports), constraints on those variables (e.g., a ship can fit only so many containers onboard), and an objective function to be minimized or maximized (e.g., maximize the number of containers shipped). The variables and constraints are often represented as a matrix in which the columns are the variables and the rows are the constraints.

A common technique to decompose such large problems is column generation, in which only a subset of the variables are considered at first, and then new variables — that is, new columns — are generated to more closely approximate the original problem. To help manage this, we developed a software library that analyzes the problem and predicts which columns are best to generate. This library will be open sourced via MathOpt, our mathematical programming framework.

With this in hand, we defined two basic approaches to solve the problem:

  1. Double Column Generation
    We considered network design and container routing as two coupled problems, each consisting of a primary selection problem (choose the best option) and a subsidiary generation problem (identify reasonable options). We applied a shortest-path algorithm to each pair of problems to generate reasonable options, followed by a linear program (using our linear programming solver, Glop) to choose the best options for each. We applied the column generation technique to both at the same time, using intermediate results on each problem to influence progress on the other. This double column generation approach enabled us to find provably optimal solutions, but it only scaled well to moderate sized problems.
  2. CP-SAT
    We then tried an implementation based on constraint programming, using our CP-SAT constraint programming solver. This also worked well up to mid-sized networks, but did not scale to the worldwide shipping problem.

These two approaches enabled us to find provably optimal solutions, but they only scaled well to small and medium sized problems. To improve their scalability, we applied a heuristic strategy using two variants of local search in which we examine neighborhoods around existing solutions to find opportunities for improvements.

  1. Large neighborhood search
    We fixed parts of the solution (e.g., "this vessel will visit Los Angeles on alternate Tuesdays") before applying either of the methods described above. This improves scalability by reducing the search space.
  2. Variable neighborhood search
    We explored neighborhoods over both the network and the schedule. We parallelize the exploration and distribute it over multiple machines to evaluate many neighborhoods simultaneously. This also improves scalability by limiting the search space, while also allowing us to incorporate knowledge from Operations Research and the shipping industry.

With both of these approaches, we made use of incrementalism: locking down promising portions of a solution so that we could start from a known good solution to make it better.

Finally, we also took into consideration transit times. Previous attempts to solve this problem didn't take transit times into account, since they make the problem much more difficult to solve. We found that inclusion of transit times significantly improved the solution quality.

联系我们 contact @ memedata.com