# FOLP_Repres: Solves a fuzzy objective linear programming problem using... In FuzzyLP: Fuzzy Linear Programming

## Description

The goal is to solve a linear programming problem having Trapezoidal Fuzzy Numbers as coefficients in the objective function (f(x)=c1*x1+…+cn*xn).

Max f(x) or Min f(x)

s.t.: Ax<=b

`FOLP.multiObj` uses a multiobjective approach. This approach is based on each β-cut of a Trapezoidal Fuzzy Number is an interval (different for each β). So the problem may be considered as a Parametric Linear Problem. For a value of β fixed, the problem becomes a Multiobjective Linear Problem, this problem may be solved from different approachs, `FOLP.multiObj` solves it using weights, the same weight for each objective.

`FOLP.interv` uses an intervalar approach. This approach is based on each β-cut of a Trapezoidal Fuzzy Number is an interval (different for each β). Fixing an β, using interval arithmetic and defining an order relation for intervals is posible to compare intervals, this transforms the problem in a biobjective problem (involving the minimum and the center of intervals). Finally `FOLP.interv` use weights to solve the biobjective problem.

`FOLP.strat` uses a stratified approach. This approach is based on that β-cuts are a sequence of nested intervals. Fixing an β two auxiliary problems are solved, the first replacing the fuzzy coefficients by the lower limits of the β-cuts, the second doing the same with the upper limits. The results of the two auxiliary problems allows to formulate a new auxiliary problem, this problem tries to maximize a parameter λ.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24``` ```FOLP.multiObj( objective, A, dir, b, maximum = TRUE, min = 0, max = 1, step = 0.25 ) FOLP.interv( objective, A, dir, b, maximum = TRUE, w1 = 0.5, min = 0, max = 1, step = 0.25 ) FOLP.strat(objective, A, dir, b, maximum = TRUE, min = 0, max = 1, step = 0.25) ```

## Arguments

 `objective` A vector (c1, c2, ..., cn) of Trapezoidal Fuzzy Numbers with the objective function coefficients f(x)=c1*x1+…+cn*xn. 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. `min` The lower bound of the interval to take the sample. `max` The upper bound of the interval to take the sample. `step` The sampling step. `w1` Weight to be used, `w2` is calculated as `w2=1-w1`. `w1` must be in the interval `[0,1]`. Only used in `FOLP.interv`.

## Value

`FOLP.multiObj` returns the solutions for the sampled β's if the solver has found them. If the solver hasn't found solutions for any of the β's sampled, return NULL.

`FOLP.interv` returns the solutions for the sampled β's if the solver has found them. If the solver hasn't found solutions for any of the β's sampled, return NULL.

`FOLP.strat` returns the solutions and the value of λ for the sampled β's if the solver has found them. If the solver hasn't found solutions for any of the β's sampled, return NULL. A greater value of λ may be interpreted as the obtained solution is better.

## References

Verdegay, J.L. Fuzzy mathematical programming. In: Fuzzy Information and Decision Processes, pages 231-237, 1982. M.M. Gupta and E.Sanchez (eds).

Delgado, M. and Verdegay, J.L. and Vila, M.A. Imprecise costs in mathematical programming problems. Control and Cybernetics, 16 (2):113-121, 1987.

Bitran, G.. Linear multiple objective problems with interval coefficients. Management Science, 26(7):694-706, 1985.

Alefeld, G. and Herzberger, J. Introduction to interval computation. 1984.

Moore, R. Method and applications of interval analysis, volume 2. SIAM, 1979.

Rommelfanger, H. and Hanuscheck, R. and Wolf, J. Linear programming with fuzzy objectives. Fuzzy Sets and Systems, 29:31-48, 1989.

## See Also

`FOLP.ordFun`, `FOLP.posib`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22``` ```## 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 # Using a Multiobjective approach. FOLP.multiObj(obj, A, dir, b, maximum = max, min=0, max=1, step=0.2) # Using a Intervalar approach. FOLP.interv(obj, A, dir, b, maximum = max, w1=0.3, min=0, max=1, step=0.2) # Using a Stratified approach. FOLP.strat(obj, A, dir, b, maximum = max, min=0, max=1, step=0.2) ```

FuzzyLP documentation built on April 11, 2021, 5:06 p.m.