FCLP.fixedBeta {FuzzyLP} | R Documentation |
Solves a Fuzzy Linear Programming problem with fuzzy constraints.
Description
The goal is to solve a linear programming problem having fuzzy constraints.
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.fixedBeta
uses the classic solver (simplex) to solve the problem with a fixed value of \beta
.
FCLP.sampledBeta
solves the problem in the same way than FCLP.fixedBeta
but
using several \beta's
taking values in a sample of the [0,1]
inteval.
Usage
FCLP.fixedBeta(
objective,
A,
dir,
b,
t,
beta = 0.5,
maximum = TRUE,
verbose = TRUE
)
FCLP.sampledBeta(
objective,
A,
dir,
b,
t,
min = 0,
max = 1,
step = 0.25,
maximum = TRUE,
verbose = TRUE
)
Arguments
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. |
beta |
The value of |
maximum |
|
verbose |
|
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. |
Value
FCLP.fixedBeta
returns the solution for the given beta if the solver has found it or NULL if not.
FCLP.sampledBeta
returns the solutions for the sampled \beta's
if the solver has found them.
If the solver hasn't found solutions for any of the \beta's
sampled, return NULL.
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 Herrera, F. and Verdegay, J.L. and Vila, M.A. Post-optimality analisys on the membership function of a fuzzy linear programming problem. Fuzzy Sets and Systems, 53:289-297, 1993.
See Also
FCLP.classicObjective
, FCLP.fuzzyObjective
FCLP.fuzzyUndefinedObjective
, FCLP.fuzzyUndefinedNormObjective
Examples
## maximize: 3*x1 + x2
## 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)
valbeta <- 0.5
max <- TRUE
FCLP.fixedBeta(obj, A, dir, b, t, beta=valbeta, maximum = max, verbose = TRUE)
FCLP.sampledBeta(obj, A, dir, b, t, min=0, max=1, step=0.25, maximum = max, verbose = TRUE)