Description Usage Arguments Details Value Note Author(s) References See Also Examples
Given two polygonal fuzzy numbers X
, Y
in the correct format (testing by checking
) the function calculates the Bertoluzza distance of X
, Y
. The parameter theta
(being the weight of the spread) has to fulfill theta
>0, by default theta
=1/3 (which corresponds to the Lebesgue measure as weighting measure on [0,1]). For detailed explanation see the papers [1] and [2] below.
1 | bertoluzza(X, Y, theta = 1/3, pic = 0)
|
X |
...dataframe (polygonal fuzzy number) |
Y |
...dataframe (polygonal fuzzy number) |
theta |
...numeric and >0 |
pic |
...numeric, if |
See examples
...in case X
and Y
are in the correct form the code returns the Bertoluzza distance, otherwise NA is returned.
In case you find (almost surely existing) bugs or have recommendations for improving the functions comments are welcome to the above mentioned mail addresses.
Wolfgang Trutschnig <wolfgang@trutschnig.net>, Asun Lubiano <lubiano@uniovi.es>
[1] Trutschnig, W., Gonzalez-Rodriguez, G., Colubi, A., Gil, M.A.: A new family of metrics for compact, convex (fuzzy) sets based on a generalized concept of mid and spread, Information Sciences, 179(23), pp. 3964-3972 (2009)
[2] Bertoluzza, C., Corral, N., Salas, A.: On a new class of distances between fuzzy numbers, Mathware Soft Comput., 2, pp:71-84 (1995)
See Also as checking
, Mmean
, Bvar
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 43 44 45 46 47 48 | #Example 1:
data(XX)
X<-translator(XX[[1]],50)
Y<-translator(XX[[2]],50)
Z<-translator(XX[[3]],50)
ZZ<-list(X,Y,Z)
b<-bertoluzza(X,Y,1/3,1)
b
#Example 2: example (SLLN for the FRV)
V<-translator(XX[[3]],100)
YY<-vector("list",length=50)
for(i in 1:50){
YY[[i]]<-generator(V,,,)
}
M<-Mmean(YY)
head(M)
b<-bertoluzza(M,V,1/3,1)
b
#Example 3:
V<-translator(XX[[3]],100)
YY<-vector("list",length=1000)
for(i in 1:1000){
YY[[i]]<-generator(V,,,)
}
M<-Mmean(YY)
head(M)
b<-bertoluzza(M,V,1/3,1)
b
#Example 4:
X<-data.frame(x=c(0,1,1,2),alpha=c(0,1,1,0))
Y<-data.frame(x=c(0,1,2),alpha=c(0,1,0))
b<-bertoluzza(X,Y,1/3,1)
b
#Example 5:
data(Trees)
X<-Mmean(Trees[[1]])
Y<-Mmean(Trees[[2]])
Z<-Mmean(Trees[[3]])
b1<-bertoluzza(X,Y,1)
b1
b2<-bertoluzza(X,Z,1)
b2
b3<-bertoluzza(Y,Z,1)
b3
|
[1] 0.2107174
x alpha
1 -2.171970 0.00000000
2 -2.074088 0.01010101
3 -1.925142 0.02020202
4 -1.803432 0.03030303
5 -1.730582 0.04040404
6 -1.700226 0.05050505
[1] 0.04851563
x alpha
1 -2.255366 0.00000000
2 -2.146919 0.01010101
3 -2.025195 0.02020202
4 -1.905627 0.03030303
5 -1.837667 0.04040404
6 -1.808049 0.05050505
[1] 0.05708649
[1] "One or more elements of the list don't define a polygonal fuzzy number"
[1] "use checking function to specify the violations in the definition of a poligonal fuzzy number"
NULL
[1] 0.6847168
[1] 0.1742996
[1] 0.5111544
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.