【问题标题】:lpSolve - optimize function to specific value + 10% of a vectorlpSolve - 将函数优化为特定值 + 向量的 10%
【发布时间】:2019-07-29 20:53:27
【问题描述】:

假设我有一个向量。并且目标函数是一个特定的值,比如 10。

我的向量的值既不大于也不小于 10%


fn.obj <- c(3,4,5)

model <- make.lp(0,3)
lp.control(model, sense="max", verbose="full")
set.objfn(model, fn.obj)#-8333550.82)

  add.constraint(model, fn.obj*(1-0.10), ">=",0)
  add.constraint(model, fn.obj*(1+0.10), ">=",0)

  add.constraint(model, fn.obj, "=",  15)

res<-solve(model)

get.variables(model)
get.objective(model)

get.variables(模型) [1] 5 0 0 获取目标(模型) [1] 15

但我不想设置一个我期望的 5,0,0

3.3 + 4.4 + 5.5 ...类似的东西 = 15

【问题讨论】:

    标签: r linear-programming solver


    【解决方案1】:

    我将您的问题理解为:如何以“最小”方式更改 x=c(3,4,5),使其总和为 15?答案是:将x 乘以15/sum(x)

    理解您的问题的另一种方法是:yx %*% y = 15 的“最统一”向量是什么?由于“均匀性”是通过熵来衡量的,这会使问题成为非线性问题,但在 R 中仍然可以解决。

    你能澄清你的问题吗?

    【讨论】:

    • 非常感谢它帮了很多忙!关键是我有 x = c(3,4,5) 和 coef = c(1, 1.2, 1.5) 然后 x%*%y = 15.3 .. 我真的想把这个数字设置为 15。我将尝试寻找非线性编程。再次感谢您的宝贵时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2019-08-10
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多