FOLP.posib {FuzzyLP} | R Documentation |
Solves a fuzzy objective linear programming problem using Representation Theorem.
Description
The goal is to solve a linear programming problem having Trapezoidal Fuzzy Numbers
as coefficients in the objective function (f(x)=c_{1}^{f} x_1+\ldots+c_{n}^{f} x_n
).
Max\, f(x)\ or\ Min\ f(x)
s.t.:\quad Ax<=b
FOLP.posib
uses a possibilistic approach. This approach is based on Trapezoidal Fuzzy Numbers
arithmetic, so the whole objective may be considered as a Fuzzy Number itself. Defining a notion of
maximum for this kind of numbers (a weighted average of the minimum and maximum of the support of
the Trapezoidal number).
Usage
FOLP.posib(objective, A, dir, b, maximum = TRUE, w1 = 0.5)
Arguments
objective |
A vector |
A |
Technological matrix of Real Numbers. |
dir |
Vector of strings with the direction of the inequalities, of the same length as |
b |
Vector with the right hand side of the constraints. |
maximum |
|
w1 |
Weight to be used, |
Value
FOLP.posib
returns the solution for the given weights if the solver has found it or NULL if not.
References
Dubois, D. and Prade, H. Operations in fuzzy numbers. International Journal of Systems Science, 9:613-626, 1978.
See Also
FOLP.ordFun
, FOLP.multiObj
, FOLP.interv
, FOLP.strat
Examples
## maximize: [0,2,3]*x1 + [1,3,4,5]*x2
## s.t.: x1 + 3*x2 <= 6
## x1 + x2 <= 4
## x1, x2 are non-negative real numbers
obj <- c(FuzzyNumbers::TrapezoidalFuzzyNumber(0,2,2,3),
FuzzyNumbers::TrapezoidalFuzzyNumber(1,3,4,5))
A<-matrix(c(1, 1, 3, 1), nrow = 2)
dir <- c("<=", "<=")
b <- c(6, 4)
max <- TRUE
FOLP.posib(obj, A, dir, b, maximum = max, w1=0.2)