Re: FUZZY LOGIC (Wang & Mendel algorithm)

Jonathan G Campbell (jg.campbell@ulst.ac.uk)
Wed, 8 Jul 1998 04:40:57 +0200 (MET DST)

joaquin wrote:
>
> first my inglish is very bad.
>
> I'm reserching on fuzzylogic controlers, and I need information about the
> WANG&MENDEL algorithm .
> you can contact me jpenass@nexo.es
>

L.X. Wang and J.M. Mendel. Generating Fuzzy Rules by Learning
from Examples. IEEE Trans. Syst. Man. Cybern., Vol. 22, No. 6.
1992.

You might find some help in:

http://www.infm.ulst.ac.uk/~jgc/papers/fz1094.a but be careful to avoid
my attempts to link fuzzy rule-bases with classical propositional logic
-- it's not all that helpful, is probably wrong, and the diagrams for,
e.g., relations, are impossible to read.

Some fuzzy rule-base software which uses employs the Wang-Mendel
training rule is described in:

http://www.infm.ulst.ac.uk/~jgc/papers/fzsm2194.a

Attempt at quick explanation.

Let our fuzzy rule-based approximator be mapping R^p -> R i.e. input x=
(x1, x2, ... xp)^T -> y, output. We have a set of n training pairs:
{x^i, y^i} i=1,n -- where superscript i denotes training datum i.

Let xj (input dimension j) be partitioned into Kj fuzzy sets; likewise y
into Ky fuzzy sets.

1. Fuzzy rule-base. The input universe (subset of R^p) is thus
partitioned into Kx= K1*K2...*Kp `product' fuzzy sets, and the output,
as above, into Ky. The fuzzy rule-base consists of a fuzzy relation,
i.e. links with memberships, between the input sets (Kx of them) and the
output sets (Ky of them). Thus, there are potentially K= Kx*Ky rules.

Initialise all rules to zero degree/membership, mk=0, k= 1, K.

2. Training using Wang-Mendel rule. For each pair {x^i, y^i} i=1,n, for
x, for each dimension j, find the *maximum* membership for xj^i in
partitioning j, mj(xj^i). This chooses a *single* `product' set, k, and
x^i's membership is mx(x^i)= product j=1, p { mj(xj^i)}. Likewise for y:
my(y). Now, the degree/membership of this `firing' of the rule is m'k=
mx(.)*my(.).

If m'k > mk (current), mk= m'k.

[Note: only *one* input product set, and only one output, are selected,
those of maximum membership -- some argue that this causes loss of
information]

3. Application. Input vector x'.

Fuzzify x': Find the membership mxkx(x') of x' in (each) product
antecedent set kx= 1, Kx. Let the rule-base link the set kx with
consequent set ky, with degree mkx (from training, 2.). The *overall*
degree of implication of consequent ky is mky= mxkx(x')*mkx.

Defuzzify: Take a weighted sum of mky*centroid(ky), for each ky.

[There are alternative defuzzifications, but this is the one contained
in the paper]

Hope this helps -- last weekend, I converted my fuzzy rule-base software
from C to Java, so I think (hope!) the algorithm is clear in my mind;
but maybe the foregoing indicates otherwise ;-)

Best regards,

Jon Campbell

-- 
Jonathan G Campbell Univ. Ulster Magee College Derry BT48 7JL N. Ireland 
+44 1504 375367 JG.Campbell@ulst.ac.uk  http://www.infm.ulst.ac.uk/~jgc/

############################################################################ This message was posted through the fuzzy mailing list. (1) To subscribe to this mailing list, send a message body of "SUB FUZZY-MAIL myFirstName mySurname" to listproc@dbai.tuwien.ac.at (2) To unsubscribe from this mailing list, send a message body of "UNSUB FUZZY-MAIL" or "UNSUB FUZZY-MAIL yoursubscription@email.address.com" to listproc@dbai.tuwien.ac.at (3) To reach the human who maintains the list, send mail to fuzzy-owner@dbai.tuwien.ac.at (4) WWW access and other information on Fuzzy Sets and Logic see http://www.dbai.tuwien.ac.at/ftp/mlowner/fuzzy-mail.info (5) WWW archive: http://www.dbai.tuwien.ac.at/marchives/fuzzy-mail/index.html