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 (c_{1}^{f}, c_{2}^{f}, ..., c_{n}^{f}) of Trapezoidal Fuzzy Numbers with the objective function coefficients f(x)=c_{1}^{f} x_1+\ldots+c_{n}^{f} x_n. Note that any of the coefficients may also be Real Numbers.

A

Technological matrix of Real Numbers.

dir

Vector of strings with the direction of the inequalities, of the same length as b. Each element of the vector must be one of "=", ">=", "<=", "<" or ">".

b

Vector with the right hand side of the constraints.

maximum

TRUE to maximize the objective function, FALSE to minimize the objective function.

w1

Weight to be used, w2 is calculated as w2=1-w1. w1 must be in the interval [0,1].

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)


[Package FuzzyLP version 0.1-7 Index]