R:单纯形错误:下标分配中不允许使用NA

时间:2019-03-07 23:12:22

标签: r linear-programming

对于以下具有目标函数和约束的最小化,87返回错误:

boot.simplex

代码在这里:

Error in tab[-pr, ] <- tab[-pr, ] - (tab[-pr, pc]/pv) %o% tab[pr, ] : 
  NAs are not allowed in subscripted assignments

请注意,约束仅是大于等于类型。

但是,如果按如下所示添加虚假的小于或等于约束,则会返回有效结果。

library(boot)
a = c(1, 1, 1)
A2 = rbind(c(2, 7.5, 3), c(20, 5, 10))
b2 = c(10000, 30000)
simplex(a=a, A2=A2, b2=b2, maxi=FALSE)

第二次尝试的最佳解决方案如下

A1 = c(1, 0, 0)
b1 = 1000000
simplex(a=a, A1=A1, b1=b1, A2=A2, b2=b2, maxi=FALSE)

为什么第一次尝试出错?是否不允许仅使用Optimal solution has the following values x1 x2 x3 1250 1000 0 The optimal value of the objective function is 2250. 类型的约束?解决这个问题的好方法是什么?

1 个答案:

答案 0 :(得分:0)

我更改了默认eps的值,它对我有用。 默认值为eps=1e-10,请尝试增加它。

simplex(a=a, A2=A2, b2=b2, maxi=FALSE, eps=1e-6)