| FCLP.classicObjective | R Documentation |
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.
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
)
objective |
A vector |
A |
Technological matrix of Real Numbers. |
dir |
Vector of strings with the direction of the inequalities, of the same length as |
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 |
maximum |
|
verbose |
|
t0 |
The tolerance value to the minimum (or maximum) bound for the objective function. Only
used in |
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.
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.
FCLP.fixedBeta, FCLP.sampledBeta
## 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.