FCLP.Obj: Solves a Fuzzy Linear Programming problem with fuzzy...

Description Usage Arguments Value References See Also Examples

Description

The goal is to solve a linear programming problem having fuzzy constraints trying to assure a minimum (or maximum) value of the objective function.

Max f(x) or Min f(x)

s.t.: Ax<=b+(1-β)*t

Where t means we allow not to satisfy the constraint, exceeding the bound b at most in t.

FCLP.classicObjective solves the problem trying to assure a minimum (maximum) value z0 of the objective function (f(x)>=z0 in maximization problems, f(x)<=z0 in minimization problems).

FCLP.fuzzyObjective solves the problem trying to assure a minimum (maximum) value z0 of the objective function with tolerance t0 (f(x)>=z0-(1-β)*t0 in maximization problems, f(x)<=z0+(1-β)*t0 in minimization problems).

FCLP.fuzzyUndefinedObjective solves the problem trying to assure a minimum (maximum) value of the objective function with tolerance but the user doesn't fix the bound nor the tolerance. The function estimate a bound and a tolerance and call FCLP.fuzzyObjective using them.

FCLP.fuzzyUndefinedNormObjective solves the problem trying to assure a minimum (maximum) value of the objective function with tolerance but the user doesn't fix the bound nor the tolerance. The function normalize the objective, estimate a bound and a tolerance and call FCLP.fuzzyObjective using them.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
FCLP.classicObjective(
  objective,
  A,
  dir,
  b,
  t,
  z0 = 0,
  maximum = TRUE,
  verbose = TRUE
)

FCLP.fuzzyObjective(
  objective,
  A,
  dir,
  b,
  t,
  z0 = 0,
  t0 = 0,
  maximum = TRUE,
  verbose = TRUE
)

FCLP.fuzzyUndefinedObjective(
  objective,
  A,
  dir,
  b,
  t,
  maximum = TRUE,
  verbose = TRUE
)

FCLP.fuzzyUndefinedNormObjective(
  objective,
  A,
  dir,
  b,
  t,
  maximum = TRUE,
  verbose = TRUE
)

Arguments

objective

A vector (c1, c2, …, cn) with the objective function coefficients f(x)=c1*x1+…+cn*xn.

A

Technological matrix of Real Numbers.

dir

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

b

Vector with the right hand side of the constraints.

t

Vector with the tolerance of each constraint.

z0

The minimum (maximum in a minimization problem) value of the objective function to reach. Only used in FCLP.classicObjective and FCLP.fuzzyObjective.

maximum

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

verbose

TRUE to show aditional screen info, FALSE to hide aditional screen info.

t0

The tolerance value to the minimum (or maximum) bound for the objective function. Only used in FCLP.fuzzyObjective.

Value

FCLP.classicObjective returns a solution reaching the given minimum (maximum) value of the objective function if the solver has found it (trying to maximize β) or NULL if not. Note that the found solution may not be the optimum for the β returned, trying β in FCLP.fixedBeta may obtain better results.

FCLP.fuzzyObjective returns a solution reaching the given minimum (maximum) value of the objective function if the solver has found it (trying to maximize β) or NULL if not. Note that the found solution may not be the optimum for the β returned, trying β in FCLP.fixedBeta may obtain better results.

FCLP.fuzzyUndefinedObjective returns a solution reaching the estimated minimum (maximum) value of the objective function if the solver has found it (trying to maximize β) or NULL if not.

FCLP.fuzzyUndefinedNormObjective returns a solution reaching the estimated minimum (maximum) value of the objective function if the solver has found it (trying to maximize β) or NULL if not.

References

Zimmermann, H. Description and optimization of fuzzy systems. International Journal of General Systems, 2:209-215, 1976.

Werners, B. An interactive fuzzy programming system. Fuzzy Sets and Systems, 23:131-147, 1987.

Tanaka, H. and Okuda, T. and Asai, K. On fuzzy mathematical programming. Journal of Cybernetics, 3,4:37-46, 1974.

See Also

FCLP.fixedBeta, FCLP.sampledBeta

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
## maximize:   3*x1 + x2 >= z0
## s.t.:       1.875*x1   - 1.5*x2 <= 4 + (1-beta)*5
##              4.75*x1 + 2.125*x2 <= 14.5 + (1-beta)*6
##               x1, x2 are non-negative real numbers

obj <- c(3, 1)
A <- matrix(c(1.875, 4.75, -1.5, 2.125), nrow = 2)
dir <- c("<=", "<=")
b <- c(4, 14.5)
t <- c(5, 6)
max <- TRUE

# Problem with solution
FCLP.classicObjective(obj, A, dir, b, t, z0=11, maximum=max, verbose = TRUE)

# This problem has a bound impossible to reach
FCLP.classicObjective(obj, A, dir, b, t, z0=14, maximum=max, verbose = TRUE)


# This problem has a fuzzy bound impossible to reach
FCLP.fuzzyObjective(obj, A, dir, b, t, z0=14, t0=1, maximum=max, verbose = TRUE)

# This problem has a fuzzy bound reachable
FCLP.fuzzyObjective(obj, A, dir, b, t, z0=14, t0=2, maximum=max, verbose = TRUE)


# We want the function estimates a bound and a tolerance
FCLP.fuzzyUndefinedObjective(obj, A, dir, b, t, maximum=max, verbose = TRUE)


# We want the function estimates a bound and a tolerance
FCLP.fuzzyUndefinedNormObjective(obj, A, dir, b, t, maximum=max, verbose = TRUE)

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

Related to FCLP.Obj in FuzzyLP...