This method finds a piecewise linear approximation \(P(A)\)
of a given fuzzy number \(A\) by using the algorithm specified by the
method
parameter.
# 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)
a fuzzy number
further arguments passed to integrateAlpha
[only "NearestEuclidean"
and "SupportCorePreserving"
]
character; one of: "NearestEuclidean"
(default),
"SupportCorePreserving"
, or "Naive"
desired number of knots (if missing, then calculated from given
knot.alpha
)
alpha-cuts at which knots will be positioned (defaults to equally distributed knots)
logical; should some technical details on the computations being performed be printed?
[only "NearestEuclidean"
]
Returns a PiecewiseLinearFuzzyNumber
object.
`method
` may be one of:
NearestEuclidean
: see (Coroianu, Gagolewski, Grzegorzewski, 2013 and 2014a);
uses numerical integration, see integrateAlpha
.
Slow for large knot.n
.
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.
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).
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.
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()
# 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