【问题标题】:Generating random solutions in CPLEX在 CPLEX 中生成随机解
【发布时间】:2014-03-06 19:48:51
【问题描述】:

我在 IBM ILOG CPLEX 中有一个简单的模型。

dvar float x in 1..99;
dvar float y in 1..99;
dvar float z in 1..99;
subject to
{
   x + y - z == 41.3;
}

我需要xyz 的随机解决方案。但是,我总是得到41.311

我是否使用了错误的工具? 此外,我需要五个随机解决方案。不止一个。我怎样才能做到这一点?

【问题讨论】:

    标签: random linear-programming cplex ilog


    【解决方案1】:

    对于可行性问题(无目标函数),CPLEX 将在找到可行解时终止。没有办法获得所有的极值点。

    你可以尝试什么:

    • 设置目标函数
    • 求解并存储解决方案
    • 修改目标函数以找到不同的解决方案(如果您想要随机解决方案,则必须随机完成)

    您必须使用一些 API 来编写逻辑代码。 这里更详细地描述了这个想法: http://orinanobworld.blogspot.de/2013/02/finding-multiple-extreme-rays.html

    但是,这对您的问题来说太复杂了。我只需执行以下操作:

    • 随机设置 z
    • 计算 x + y = z + 41.3
    • 选择一个介于 0 和 1 之间的随机 r
    • x = (x+y) * r
    • y = (x+y) * (1-r)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2010-10-15
      • 2012-12-16
      • 1970-01-01
      • 2019-05-15
      相关资源
      最近更新 更多