FWA(q) is maximal. Then q
max
(i) = – if max[A
i
]
α
<
FWA(q
max
) and q
max
(i) = + if max[A
i
]
α
> FWA(q
max
).
In particular, q
max
(1) = – and q
max
(n) = +. Let q
i
be
the element of Q defined by q
i
(j) = – for 1<=j<=i
and q
i
(j) = + for i<j<=n. Then q
max
= q
i
for some i
with 1<=i<=n–1. To determine q
max
, start with q
(n–1)
.
Compare FWA(q
(n–1)
) with max[A
(n-1)
]
α
. If FWA(q
(n–
1)
) >= max[A
(n-1)
]
α
then q
max
= q
(n–1)
, else continue
with q
(n–2)
, et cetera. So, the algorithm to compute
the maximum of FWA(q) for q∈Q is
sort { max[A
i
]
α
|1<=i<=n};
i = n–1;
while (FWA(q
i
) < max[A
i
]
α
) i = i–1;
return FWA(q
i
);
Let us illustrate the algorithm with a small
example, with n=6.
[A
i
]
α
[W
i
]
α
FWA(q
i
) [A
i
]
α
FWA(q
i
)
----- ----- --------- ---- ----------
[1,4] [1,3] [1,4] 109/16
[2,6] [1,3] 23/8 [4,5] 99/14
[3,7] [1,3] 27/10 [2,6] 87/12
[4,5] [1,3] 33/12 [3,7] 73/10
[5,8] [1,3] 41/14 [5,8] 57/8
[6,9] [1,3] 51/16 [6,9]
In this first table the α-cuts [A
i
]
α
and [W
i
]
α
for
some fixed α are shown in the first and the second
column, sorted according to min[A
i
]
α
. The third
column shows the values of FWA(q
i
). The minimum
is seen to be 27/10, being the first value from above
in the fourth column which is not greater than the
corresponding value for min[A
i
]
α
(in the first
column). In the fourth table the α-cuts [A
i
]
α
are
sorted according to max[A
i
]
α
. The fourth column
shows the values of FWA(q
i
). The maximum is seen
to be 73/10, being the first value from below in the
fourth column which is not less than the
corresponding value for max[A
i
]
α
.
The extremal values obtained above could also
have been found by taking the smallest resp. highest
values in the fourth columns of the tables above; this
is indeed the approach of Chiao (2000). So
apparently we did not gain anything, except some
geometrical insight, as explained above. However,
as it will turn out in the next section, for obtaining
an analytical solution it is crucial not to compare
values of the fourth column (FWA(q
i
) or FWA(q
i
))
among each other, but instead compare elements of
the fourth column with elements in the second
column ([A
i
]
α
).
The computational complexity of our algorithm
is O(n*ln(n)), due to the first step, the sorting of the
elements. The second phase, whose computational
complexity is O(n), could be optimized by replacing
the linear search by binary search, resulting in
computational complexity O(ln(n)), as in (Lee &
Park, 1997); the overall computational complexity
would remain O(n*ln(n)), however. Guu (2002) has
given an algorithm with computational complexity
O(n), in which the sorting of the elements is
avoided. We have tried to keep our algorithm as
simple as possible, in order to be able to generalize it
to obtain an analytical solution.
3 ANALYTICAL SOLUTION FOR
THE FUZZY WEIGHTED
AVERAGE
In this section we will show that the algorithm given
in the previous section can be generalized to obtain
an analytical solution for the membership function
of the fuzzy weighted average. There have been two
previous attempts to obtain an analytical solution.
Dong and Wong (1987) obtained an analytical
solution for two small examples. A general method
was not given, however. Their approach was to
consider the partial derivatives with respect to w
i
of
eq. (1) in order to obtain the extremal values of this
equation. Kao and Liu (2001) followed the same
approach, and applied it to the same two examples,
but also failed to provide a general solution. Our
approach is different. We will generalize the
algorithm of the previous section, by considering α
to be a parameter which ranges over the interval
[0,1], instead of being some fixed value. Then,
taking the values of the fuzzy weights and fuzzy
attributes to be triangular and trapezoidal fuzzy
numbers, the extremal values of their α-cuts are
linear functions of α.
A trapezoidal fuzzy number will be denoted as a
4–tuple (a,b,c,d) where a,b,c and d are real numbers
with a<=b<=c<=d. The trapezoidal number (a,b,c,d)
has membership function μ, given by
μ(x) = 0, if x<=a
μ(x) = (x – a)/(b – a), if a<x<b
μ(x) = 1, if b<=x<=c
μ(x) = (d – x)/(d – c), if c<x<d
μ(x) = 0, if x>=d
The restriction of μ to [a,b] and [c,d] will be
referred to as the left part resp. the right part of the
trapezoidal number. A triangular fuzzy number is a
FUZZY WEIGHTED AVERAGE - Analytical Solution
33