| FuzzyNumber-class {FuzzyNumbers} | R Documentation |
S4 class Representing a Fuzzy Number
Description
Formally, a fuzzy number A (Dubois, Prade, 1987) is a fuzzy subset of the
real line R with membership function \mu given by:
| 0 | if x < a1, |
|
| left((x-a1)/(a2-a1)) | if a1 \le x < a2, |
|
\mu(x) = | | 1 | if a2 \le x \le a3, |
| right((x-a3)/(a4-a3)) | if a3 < x \le a4, |
|
| 0 | if a4 < x, |
|
where a1,a2,a3,a4\in R, a1 \le a2 \le a3 \le a4,
left: [0,1]\to[0,1] is a nondecreasing function
called the left side generator of A,
and right: [0,1]\to[0,1] is a nonincreasing function
called the right side generator of A.
Note that this is a so-called L-R representation of a fuzzy number.
Alternatively, it may be shown that each fuzzy number A may be uniquely determined
by specifying its \alpha-cuts, A(\alpha). We have A(0)=[a1,a4] and
A(\alpha)=[a1+(a2-a1)*lower(\alpha), a3+(a4-a3)*upper(\alpha)]
for 0<\alpha\le 1, where lower: [0,1]\to[0,1]
and upper: [0,1]\to[0,1]
are, respectively, strictly increasing and decreasing functions
satisfying lower(\alpha)=\inf\{x: \mu(x)\ge\alpha\}
and upper(\alpha)=\sup\{x: \mu(x)\ge\alpha\}.
Details
Please note that many algorithms that deal with fuzzy numbers often use
\alpha-cuts rather than side functions.
Note that the FuzzyNumbers package also deals with particular types of fuzzy numbers like trapezoidal, piecewise linear, or “parametric” FNs.
Slots
a1:Single numeric value specifying the left bound for the support.
a2:Single numeric value specifying the left bound for the core.
a3:Single numeric value specifying the right bound for the core.
a4:Single numeric value specifying the right bound for the support.
lower:A nondecreasing function [0,1]->[0,1] that gives the lower alpha-cut bound.
upper:A nonincreasing function [0,1]->[1,0] that gives the upper alpha-cut bound.
left:A nondecreasing function [0,1]->[0,1] that gives the left side function.
right:A nonincreasing function [0,1]->[1,0] that gives the right side function.
Child/sub classes
TrapezoidalFuzzyNumber,
PiecewiseLinearFuzzyNumber,
PowerFuzzyNumber, and
DiscontinuousFuzzyNumber
References
Dubois D., Prade H. (1987), Fuzzy numbers: An overview, In: Analysis of Fuzzy Information. Mathematical Logic, vol. I, CRC Press, pp. 3-39.
See Also
FuzzyNumber for a convenient constructor, and
as.FuzzyNumber for conversion of objects to this class.
Also, see convertSide for creating side functions generators,
convertAlpha for creating alpha-cut bounds generators,
approxInvert for inverting side functions/alpha-cuts numerically.
Other FuzzyNumber-method:
Arithmetic,
Extract,
FuzzyNumber,
alphaInterval(),
alphacut(),
ambiguity(),
as.FuzzyNumber(),
as.PiecewiseLinearFuzzyNumber(),
as.PowerFuzzyNumber(),
as.TrapezoidalFuzzyNumber(),
as.character(),
core(),
distance(),
evaluate(),
expectedInterval(),
expectedValue(),
integrateAlpha(),
piecewiseLinearApproximation(),
plot(),
show(),
supp(),
trapezoidalApproximation(),
value(),
weightedExpectedValue(),
width()
Examples
showClass("FuzzyNumber")
showMethods(classes="FuzzyNumber")