Description Usage Arguments Value References See Also Examples
The goal is to solve a linear programming problem having Trapezoidal Fuzzy Numbers as coefficients in the objective function (f(x)=c1*x1+…+cn*xn).
Max f(x) or Min f(x)
s.t.: Ax<=b
FOLP.ordFun
uses ordering functions to compare Fuzzy Numbers.
1 2 3 4 5 6 7 8 9 10 
objective 
A vector (c1, c2, ..., cn) of Trapezoidal Fuzzy Numbers with the objective function coefficients f(x)=c1*x1+…+cn*xn. Note that any of the coefficients may also be Real Numbers. 
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. 
maximum 

ordf 
Ordering function to be used, ordf must be one of "Yager1", "Yager3", "Adamo", "Average" or "Custom". The "Custom" option allows to use a custom linear ordering function that must be placed as FUN argument. If a non linear function is used the solution may not be optimal. 
... 
Additional parameters to the ordering function if needed.

FUN 
Custom linear ordering function to be used if the value of ordf is "Custom". If any of the
coefficients of the objective function are Real Numbers, the user must assure that the function

FOLP.ordFun
returns the solution if the solver has found it or NULL if not.
Gonzalez, A. A studing of the ranking function approach through mean values. Fuzzy Sets and Systems, 35:2941, 1990.
Cadenas, J.M. and Verdegay, J.L. Using Fuzzy Numbers in Linear Programming. IEEE Transactions on Systems, Man, and CyberneticsPart 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:185194, 1984.
FOLP.multiObj
, FOLP.interv
, FOLP.strat
, FOLP.posib
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  ## maximize: [0,2,3]*x1 + [1,3,4,5]*x2
## s.t.: x1 + 3*x2 <= 6
## x1 + x2 <= 4
## x1, x2 are nonnegative real numbers
obj < c(FuzzyNumbers::TrapezoidalFuzzyNumber(0,2,2,3),
FuzzyNumbers::TrapezoidalFuzzyNumber(1,3,4,5))
A<matrix(c(1, 1, 3, 1), nrow = 2)
dir < c("<=", "<=")
b < c(6, 4)
max < TRUE
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Yager1")
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Yager3")
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Adamo", 0.5)
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Average", lambda=0.8, t=3)
# Define a custom linear function
av < function(tfn) {mean(FuzzyNumbers::core(tfn))}
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Custom", FUN=av)
# Define a custom linear function
avp < function(tfn, a) {a*mean(FuzzyNumbers::core(tfn))}
FOLP.ordFun(obj, A, dir, b, maximum = max, ordf="Custom", FUN=avp, a=2)

x1 x2 objective
[1,] 3 1 ?
x1 x2 objective
[1,] 3 1 ?
x1 x2 objective
[1,] 3 1 ?
x1 x2 objective
[1,] 3 1 ?
x1 x2 objective
[1,] 3 1 ?
x1 x2 objective
[1,] 3 1 ?
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.