在以前的文章中,我已经演示了如何使用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

专业领域为优化和仿真的工业工程师(R,Python,SQL,VBA)
Leave a Reply