FuzzyLP的简单线性问题,使用crispLP和基本单纯形

在以前的文章中,我已经演示了如何使用lpSolve或R在Python中使用SciPy.optimize解决线性程序。在这个编码示例中,我想展示如何使用FuzzyLP软件包进行简单的线性优化。

FuzzyLP是用于“模糊”线性规划(即不确定性下的线性优化)的软件包。在以后的文章中,我将展示如何使用R中的FuzzyLP进行模糊线性编程。这篇文章着重于一个简单的线性程序,可以使用标准的单纯形算法来求解。

下面以标量语法说明要解决的问题:

可以通过以向量矩阵语法(即以下形式)对其进行描述来解决此问题:

c是目标函数的系数向量。 x是包含优化变量的向量。 A是线性约束的系数矩阵,b是包含约束值的向量。

在下面的编码示例中,这些向量和矩阵在R中定义,并使用crispLP(FuzzyLP软件包所包含的函数)对问题进行建模和解决。 crispLP将使用标准的单纯形算法解决该问题。

#install.packages("FuzzyLP")
library(FuzzyLP)
# 定义描述当前问题的向量和矩阵
c <- c(3,4)
A <- matrix(c(1,1),nrow=1)
dir <- c("<=")
b <- c(1)
  
# 使用FuzzyLP中的crispLP解决问题;因为这是一个最大化问题,所以“ maximum”必须为TRUE
solution <- crispLP(objective = c, 
                    A = A, 
                    dir = dir, 
                    b = b, 
                    maximum = TRUE)
# 输出解决方案
solution
##      x1 x2 objective
## [1,]  0  1         4

Leave a Reply

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Close

功能