GFLP {FuzzyLP} | R Documentation |
Solves a maximization (minimization) problem having fuzzy coefficients in the constraints, the objective function and/or the technological matrix.
Description
The goal is to solve a linear programming problem having Trapezoidal Fuzzy Numbers as coefficients in the constraints, the objective function and/or the technological matrix.
This function uses different ordering functions for the objective function and for the constraints.
Usage
GFLP(
objective,
A,
dir,
b,
t,
maximum = TRUE,
ordf_obj = c("Yager1", "Yager3", "Adamo", "Average"),
ordf_obj_param = NULL,
ordf_res = c("Yager1", "Yager3", "Adamo", "Average"),
ordf_res_param = NULL,
min = 0,
max = 1,
step = 0.25
)
Arguments
objective |
A vector |
A |
Technological matrix containing Trapezoidal Fuzzy Numbers and/or 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. |
maximum |
|
ordf_obj |
Ordering function to be used in the objective function, |
ordf_obj_param |
Parameters need by ordf_obj function, if it needs more than one parameter, use
a named vector. See |
ordf_res |
Ordering function to be used in the constraints, |
ordf_res_param |
Parameters need by ordf_res function, if it needs more than one parameter, use
a named vector. See |
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
GFLP
returns the solutions for the sampled if the solver has found them.
If the solver hasn't found solutions for any of the
sampled, return NULL.
References
Gonzalez, A. A studing of the ranking function approach through mean values. Fuzzy Sets and Systems, 35:29-41, 1990.
Cadenas, J.M. and Verdegay, J.L. Using Fuzzy Numbers in Linear Programming. IEEE Transactions on Systems, Man, and Cybernetics-Part B: Cybernetics, vol. 27, No. 6, December 1997.
Tanaka, H., Ichihashi, H. and Asai, F. A formulation of fuzzy linear programming problems based a comparison of fuzzy numbers. Control and Cybernetics, 13:185-194, 1984.
Examples
## maximize: [1,3,4,5]*x1 + x2
## s.t.: [0,2,3,3.5]*x1 + [0,1,1,4]*x2 <= [2,2,2,3] + (1-beta)*[1,2,2,3]
## [3,5,5,6]*x1 + [1.5,2,2,3]*x2 <= 12
## x1, x2 are non-negative real numbers
obj <- c(FuzzyNumbers::TrapezoidalFuzzyNumber(1,3,4,5), 1)
a11 <- FuzzyNumbers::TrapezoidalFuzzyNumber(0,2,2,3.5)
a21 <- FuzzyNumbers::TrapezoidalFuzzyNumber(3,5,5,6)
a12 <- -FuzzyNumbers::TrapezoidalFuzzyNumber(0,1,1,4)
a22 <- FuzzyNumbers::TrapezoidalFuzzyNumber(1.5,2,2,3)
A <- matrix(c(a11, a21, a12, a22), nrow = 2)
dir <- c("<=", "<=")
b<-c(FuzzyNumbers::TrapezoidalFuzzyNumber(2,2,2,3), 12)
t<-c(FuzzyNumbers::TrapezoidalFuzzyNumber(1,2,2,3),0);
max <- TRUE
GFLP(obj, A, dir, b, t, maximum = max, ordf_obj="Yager1", ordf_res="Yager3")
GFLP(obj, A, dir, b, t, maximum = max, ordf_obj="Adamo", ordf_obj_param=0.5, ordf_res="Yager3")
GFLP(obj, A, dir, b, t, maximum = max, "Average", ordf_obj_param=c(t=3, lambda=0.5),
ordf_res="Adamo", ordf_res_param = 0.5)
GFLP(obj, A, dir, b, t, maximum = max, ordf_obj="Average", ordf_obj_param=c(t=3, lambda=0.8),
ordf_res="Yager3", min = 0, max = 1, step = 0.2)