home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.ai.fuzzy      Fuzzy logic... all warm and fuzzy-like      1,275 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 529 of 1,275   
   Dmitry A. Kazakov to Ernst Murnleitner   
   Re: Is FFLL still alive?   
   19 Dec 05 10:28:19   
   
   From: mailbox@dmitry-kazakov.de   
      
   On Mon, 19 Dec 2005 00:59:35 +0100, Ernst Murnleitner wrote:   
      
   >> What do you mean under nested rules?   
   >   
   > I meant cascaded rule bases. The output of one rule base should be used   
   > as input for the next without need of defuzzyfication.   
      
   I see. I can imagine three ways to handle it.   
      
   1. To introduce an intermediate variable, which is neither input nor   
   output. (It would be no problem to introduce a new type of variable block.)   
   But this would open a can of worms. The intermediate variables need to be   
   defined, so rules should be fired in a definitive order. Thus one would   
   need to introduce rule firing constraints. These constraints need to be   
   managed, checked etc (what if there is a circle?) I don't like it.   
      
   2. Syntactically nested rules. I didn't think this idea through.   
      
   3. One rules block can act as an input variable for another. This should   
   already be possible in my version of FCL. Both fuzzification of the output   
   and defuzzification of the input need to be turned off. This is easy.   
      
   > I am not sure, if   
   > it is supported. Mabe it is supported in FFLL.   
      
   I don't know.   
      
   > I didn't have a close look, because last time I missed some things,   
   > which are part of level 2 of FCL and not included in FFLL, e.g.   
   >   
   > OR in the condition   
      
   I have it, and XOR too.   
      
   > NOT in the (sub)condition   
      
   Ditto.   
      
   [ My compiler converts conditions into a DNF, it also tries some heuristics   
   to simplify the expressions. All disjuncts become independent rules. ]   
      
   > WITH for weighting rules   
      
   Hmm, I think that WITH isn't actually required. The weight just cuts the   
   conclusion parts. So   
      
      if ... then X is A with W   
      
   is equivalent to   
      
      if ... then X is (A and W)   
      
   > I know, I can work around this but it makes the rules less natural.   
   > Users should be able to use "OR" and "NOT" as they do in the real world.   
      
   Sure   
      
   >> I have extended FCL for the case of   
   >> intuitionistic logic. The compiler is ready, but I"m interested in   
   >> proposals to make the language better.   
   >   
   > I had not heard about it before.   
      
   Probably because I didn't publish it yet. (:-))   
      
   > Could you provide an example?   
      
   Function block:   
      
      var_input   
         Distance : real [m];   
         Angle    : real [°];   
         I        : integer 1..20; (* Integer variable range 1..20 *)   
         Color    : nominal (red, blue, white);   
         T        : real [°C];   
         V        : float [°C] 10 range 1..2*10; -- 10 intervals of 1..20   
      end_var   
      
      fuzzify T   
         term Chill := (-10,1)(-4,0); -- °C is assumed when missing   
         term Cold  := ( 11,1)(17,0)             [°C];   
         term Tepid := (  3,0)( 8,1)(21,1)(28,0) [°C];   
         term Warm  := ( 15,0)(21,1)(29,1)(35,0) [°C];   
         term Hot   := ( 25,0)(28,1)             [°C];   
      end_fuzzify   
      
   Dimensioned variables are supported. Expressions are allowed everywhere a   
   constant may appear.   
      
   I have introduced operations: >, <, <=, =>, =, /=.   
      
      if I > 2 and I < 4 ...   
      
   is equivalent to   
      
      I is (3,1) ... -- (3,1) is a singleton 3   
      
   Ranges, sets, intuitionistic sets are allowed. Supporting expressions has   
   required a lot of predefined types. Anyway the following is legal:   
      
      T is 2.5..6.5 [°C] ... -- equivalent to square membership function:   
      T is (2.5°C,0)(2.5°C,1)(6.5°C,1)(6.5°C,0)   
      
   The approach is fully intuitionistic, so (not X) is considered   
   non-deducible from X. Both can be used in the rules. For example the   
   following conditions are all different:   
      
      X is A   
      A is X   
      (not A) is X   
      (not X) is A   
      
   --   
   Regards,   
   Dmitry A. Kazakov   
   http://www.dmitry-kazakov.de   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca