ortools中的迭代算法pdlp

她说, 她是仙, 她不是神 / 2023-07-26 / 原文

  • ortools 中提供了一个文档介绍快速具体算法 https://developers.google.cn/optimization/lp/lp_advanced?hl=en
    其中实现了一个迭代法 PDLP, 对于低精度,以及给定初值的情况应该比较有利。

文档没有提供例子, 但代码路中有例子:

  • Python版 https://github.com/google/or-tools/blob/main/ortools/pdlp/samples/simple_pdlp_program.py

  • c 版本 https://github.com/google/or-tools/blob/main/ortools/pdlp/samples/simple_pdlp_program.cc

  • java 版 或许可以参考实现.

    • 例子 https://github.com/or-tools/java_or-tools
  • 注意如何设置参数 termination_criteria { eps_optimal_absolute: 1e-4 eps_optimal_relative: 1e-4 }

    • params.mutable_termination_criteria()->set_iteration_limit(iteration_limit);
  • 对偶问题理解 https://en.wikipedia.org/wiki/Dual_linear_program