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\}\).
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.
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.
Dubois D., Prade H. (1987), Fuzzy numbers: An overview, In: Analysis of Fuzzy Information. Mathematical Logic, vol. I, CRC Press, pp. 3-39.
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
,
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
# NOT RUN {
showClass("FuzzyNumber")
showMethods(classes="FuzzyNumber")
# }
Run the code above in your browser using DataLab