FOLP_Repres: Solves a fuzzy objective linear programming problem using...

Description Usage Arguments Value References See Also Examples

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.

Related to FOLP_Repres in FuzzyLP...