> Question: How is the degree of membership calculated?
Please find enclosed, how I have implemented the membership function, wherea fuzzy
interval is characterized by a set of parameters [m1, m2, a, b] with an trapezoidal
shape:
m1- a : mu = 0
m1 : mu =1
m2 : mu =1
m2+b: mu =0
Your Example "Just Right" would be [65, 65,5, 5].
function MemberShip(X: Real): FuzzyInterval;
Begin
Result := 0.0;
if (x > A.m1-A.a) and (x < A.m1) then
Result := (x - A.m1 + A.a)/ A.a;
if (x >= A.m1) and (x <= A.m2) then
Result := 1.0 ;
if (x > A.m2) and (x < A.m2 +A.b) then
Result := 1.0 + (A.m2 - x) / A.b;
End;
Using this approach and if I am right with it, the result for your point "O" is
0.6 of "Just Right" and not (!!!) 0.8.
You can test the function using my free Win95 program FzCalc 1.1 "X in Y" Function,
which is available in the Download-Area of:
http://www.mst.uni-hannover.de/~vspdecis
Additionally my program can evaluate the degree of membership of a fuzzy interval
within an
another fuzzy interval, too. - Which is much more complex, when compared to your
real-valued
input.
I hope, that I could help you
Hartwig Jeschke