Algorithm 多目标整数规划

Algorithm 多目标整数规划,algorithm,linear-programming,gurobi,integer-programming,Algorithm,Linear Programming,Gurobi,Integer Programming,我想用整数规划来列举帕累托最优解。 我想实现一个算法,使用古罗比或类似的单目标整数规划求解器来实现这一点,但我不知道任何这样的算法。有人能提出一个计算有效边界的算法吗?在这个答案中,我将讨论如何计算形式为2目标纯整数优化问题的所有帕累托有效解 min_x {g'x, h'x} s.t. Ax <= b x integer 我们将一个集p初始化为p={x*},其中x*是该模型的最优解,该集最终将包含所有帕累托有效解。为了获得有效边界上的下一个点,该点具有第二小的g'x值和改进

我想用整数规划来列举帕累托最优解。
我想实现一个算法,使用古罗比或类似的单目标整数规划求解器来实现这一点,但我不知道任何这样的算法。有人能提出一个计算有效边界的算法吗?

在这个答案中,我将讨论如何计算形式为2目标纯整数优化问题的所有帕累托有效解

min_x {g'x, h'x}
s.t.  Ax <= b
      x integer
我们将一个集
p
初始化为
p={x*}
,其中
x*
是该模型的最优解,该集最终将包含所有帕累托有效解。为了获得有效边界上的下一个点,该点具有第二小的
g'x
值和改进的
h'x
值,我们可以向我们的模型添加以下约束:

  • 从可行的解决方案集中删除
    x*
    (关于这些
    x!=x*
    约束的详细信息将在后面的答案中提供)

  • 添加一个约束,即
    h'x是多目标混合整数线性规划的学术开源解算器。如果您不想实现自己的解算器,或者不想将自己的解算器与另一个解算器进行比较。

    谢谢,采样方法非常好,但可能不精确。有没有一种方法可以生成所有的最优边界,而不需要其中任何一个?programming@william007我已经更新了一个算法,该算法保证枚举2目标整数规划的整个有效边界。
    min_x g'x
    s.t.  Ax <= b
          x integer
    
    min_x g'x
    s.t.  Ax <= b
          x != x* for all x* in P
          h'x <= h'x* for all x* in P
          x integer
    
    x_i - x*_i >= 1 - M(1-y_i) for all i = 1, ..., n
    
    x_i - x*_i <= -1 + M(1-z_i) for all i = 1, ..., n
    
    y_1 + y_2 + ... + y_n + z_1 + z_2 + ... + z_n >= 1