FCLP.classicObjective {FuzzyLP}R Documentation

Solves a Fuzzy Linear Programming problem with fuzzy constraints trying to assure a minimum (maximum) value of the objective function.

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.:\quad Ax<=b+(1-\beta)*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 z_0 of the objective function (f(x)>=z_0 in maximization problems, f(x)<=z_0 in minimization problems).

FCLP.fuzzyObjective solves the problem trying to assure a minimum (maximum) value z_0 of the objective function with tolerance t_0 (f(x)>=z_0-(1-\beta)t_0 in maximization problems, f(x)<=z_0+(1-\beta)t_0 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

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 (c_1, c_2, \ldots, c_n) with the objective function coefficients f(x)=c_1 x_1+\ldots+c_n x_n.

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 \beta) or NULL if not. Note that the found solution may not be the optimum for the \beta returned, trying \beta 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 \beta) or NULL if not. Note that the found solution may not be the optimum for the \beta returned, trying \beta 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 \beta) 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 \beta) 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

## 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)


[Package FuzzyLP version 0.1-7 Index]