Learn R Programming

FuzzyNumbers (version 0.4-7)

piecewiseLinearApproximation: Piecewise Linear Approximation of a Fuzzy Number

Description

This method finds a piecewise linear approximation \(P(A)\) of a given fuzzy number \(A\) by using the algorithm specified by the method parameter.

Usage

# S4 method for FuzzyNumber
piecewiseLinearApproximation(object,
   method=c("NearestEuclidean", "SupportCorePreserving", 
   "Naive"),
   knot.n=1, knot.alpha=seq(0, 1, length.out=knot.n+2)[-c(1,knot.n+2)],
   ..., verbose=FALSE)

Arguments

object

a fuzzy number

...

further arguments passed to integrateAlpha [only "NearestEuclidean" and "SupportCorePreserving"]

method

character; one of: "NearestEuclidean" (default), "SupportCorePreserving", or "Naive"

knot.n

desired number of knots (if missing, then calculated from given knot.alpha)

knot.alpha

alpha-cuts at which knots will be positioned (defaults to equally distributed knots)

verbose

logical; should some technical details on the computations being performed be printed? [only "NearestEuclidean"]

Value

Returns a PiecewiseLinearFuzzyNumber object.

Details

`method` may be one of:

  1. NearestEuclidean: see (Coroianu, Gagolewski, Grzegorzewski, 2013 and 2014a); uses numerical integration, see integrateAlpha. Slow for large knot.n.

  2. SupportCorePreserving: This method was proposed in (Coroianu et al., 2014b) and is currently only available for knot.n==1. It is the L2-nearest piecewise linear approximation with constraints core(A)==core(P(A)) and supp(A)==supp(P(A)); uses numerical integration.

  3. Naive: We have core(A)==core(P(A)) and supp(A)==supp(P(A)) and the knots are taken directly from the specified alpha cuts (linear interpolation).

References

Coroianu L., Gagolewski M., Grzegorzewski P. (2013), Nearest Piecewise Linear Approximation of Fuzzy Numbers, Fuzzy Sets and Systems 233, pp. 26-51.

Coroianu L., Gagolewski M., Grzegorzewski P., Adabitabar Firozja M., Houlari T. (2014a), Piecewise linear approximation of fuzzy numbers preserving the support and core, In: Laurent A. et al. (Eds.), Information Processing and Management of Uncertainty in Knowledge-Based Systems, Part II (CCIS 443), Springer, pp. 244-254.

Coroianu L., Gagolewski M., Grzegorzewski P. (2014b), Nearest Piecewise Linear Approximation of Fuzzy Numbers - General Case, submitted for publication.

See Also

Other approximation: trapezoidalApproximation()

Other FuzzyNumber-method: Arithmetic, Extract, FuzzyNumber-class, FuzzyNumber, alphaInterval(), alphacut(), ambiguity(), as.FuzzyNumber(), as.PiecewiseLinearFuzzyNumber(), as.PowerFuzzyNumber(), as.TrapezoidalFuzzyNumber(), as.character(), core(), distance(), evaluate(), expectedInterval(), expectedValue(), integrateAlpha(), plot(), show(), supp(), trapezoidalApproximation(), value(), weightedExpectedValue(), width()

Examples

Run this code
# NOT RUN {
(A <- FuzzyNumber(-1, 0, 1, 3,
   lower=function(x) sqrt(x),upper=function(x) 1-sqrt(x)))
(PA <- piecewiseLinearApproximation(A, "NearestEuclidean",
   knot.n=1, knot.alpha=0.2))
# }

Run the code above in your browser using DataLab