【问题标题】:What is the appropriate optimization method (algorithm) to solve such problems (Linear mixed-integer)?解决此类问题(线性混合整数)的合适优化方法(算法)是什么?
【发布时间】:2020-05-01 02:09:53
【问题描述】:

我有这个优化问题:

在这个问题中,C_{i,k} 是二进制值(即 0 或 1)矩阵,w_i 是整数向量,p_f 是概率,而 \epsilon 是常数。 我知道这个问题是一个线性混合整数问题。但是我对解决问题应该使用的方法或算法感到困惑,以及如何通过凸性分析走得更远。 感谢您的意见。 非常感谢。

【问题讨论】:

  • 我的建议:尝试使用 MIP 求解器(也可能是建模工具)作为 MIP 求解。如果问题很大,请获得一个好的 MIP 求解器。请注意,线性模型已经是凸的(我不知道这方面的凸分析是什么)。
  • @ErwinKalvelagen,感谢您的评论。

标签: optimization mathematical-optimization mixed-integer-programming


【解决方案1】:

这是0-1 knapsack problem。这个问题可以使用动态规划或分支定界算法来解决。对于分支定界,您可以选择任何变量 z_k,解决两个 z_k 等于 0 或 1 的子问题。每个子问题的结构与原始问题完全相同。

【讨论】:

  • 感谢您的回复。您能否使用任何一种建议的算法为背包问题提供任何建模参考。
  • 我对这个问题的首选是使用整数规划求解器,例如 Gurobi/Mosek 等。如果您不想调用求解器,您可以尝试动态规划或分支和界限。如果您知道所有 k 的 log(p_f^k) 的最大公约数,那么您可以使用动态规划方法。这是动态规划的教程es.ele.tue.nl/education/5MC10/Solutions/knapsack.pdf,本教程中的容量“W”在你的公式中是 ln(1-ε)。
  • 你也可以尝试分支定界算法来解决这个问题。这是一个教程geeksforgeeks.org/…。分支定界比动态编程更通用,因为它不需要知道 log(p_f^k) 的最大公约数。
  • 顺便说一句,商业求解器 (Mosek/Gurobi) 通常使用分支定界算法的高级版本,称为分支切法,即分支定界和一种称为切割的技术飞机。 optimization.mccormick.northwestern.edu/index.php/…
猜你喜欢
  • 2021-09-11
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
  • 2012-11-02
相关资源
最近更新 更多