Problema lineal con FuzzyLP, usando crispLP y simplex básico

En publicaciones anteriores, he demostrado cómo resolver programas lineales en R usando lpSolve, o en Python usando SciPy.optimize. En este ejemplo de codificación, quiero mostrar cómo llevar a cabo una optimización lineal simple utilizando el paquete FuzzyLP.

FuzzyLP es un paquete para programación lineal “”difusa””, es decir, optimización lineal bajo incertidumbre. En publicaciones posteriores, mostraré cómo llevar a cabo una programación lineal difusa usando FuzzyLP en R. Esta publicación se enfoca en un programa lineal simple que puede resolverse usando el algoritmo simplex estándar.

El problema a resolver se indica a continuación en sintaxis escalar:

Este problema se puede resolver describiéndolo en sintaxis de matriz de vectores, es decir, en la siguiente forma:

c es el vector coeficiente de la función objetivo. x es el vector que contiene las variables de optimización. A es la matriz de coeficientes de las restricciones lineales y b es el vector que contiene los valores de restricción.

En el siguiente ejemplo de codificación, estos vectores y matrices se definen en R y el problema se modela y resuelve usando crispLP, una función contenida en el paquete FuzzyLP. crispLP resolverá el problema utilizando el algoritmo simplex estándar.

#install.packages("FuzzyLP")
library(FuzzyLP)
# define vectores y matrices que describen el problema en cuestión
c <- c(3,4)
A <- matrix(c(1,1),nrow=1)
dir <- c("<=")
b <- c(1)
  
# usando crispLP de FuzzyLP para resolver el problema; ya que es un problema de maximización "máximo" tiene que ser VERDADERO
solution <- crispLP(objective = c, 
                    A = A, 
                    dir = dir, 
                    b = b, 
                    maximum = TRUE)
# solución de salida
solution
##      x1 x2 objective
## [1,]  0  1         4

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Close

Meta