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 un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close

Meta