# FCLP.Obj: Solves a Fuzzy Linear Programming problem with fuzzy... In FuzzyLP: Fuzzy Linear Programming

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

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

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42``` ```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 (c1, c2, …, cn) with the objective function coefficients f(x)=c1*x1+…+cn*xn. `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 β) or NULL if not. Note that the found solution may not be the optimum for the β returned, trying β 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 β) or NULL if not. Note that the found solution may not be the optimum for the β returned, trying β 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 β) 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 β) 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

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32``` ```## 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) ```

FuzzyLP documentation built on April 11, 2021, 5:06 p.m.