Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^3: RFC: A Beginners Guide to Fuzzy Rules-Based Systems

by talexb (Canon)
on Oct 12, 2006 at 14:14 UTC ( #577846=note: print w/ replies, xml ) Need Help??


in reply to Re^2: RFC: A Beginners Guide to Fuzzy Rules-Based Systems
in thread RFC: A Beginners Guide to Fuzzy Rules-Based Systems

    About your comment on the $fis->addRule, I am not sure if I understood it. Could you, please, rephrase it?

Your OP contained the following chunk of code:

$fis->addRule( 'quality=bad & speed=slow' => 'award=minimum', 'quality=ok & speed=slow' => 'award=minimum', 'quality=good & speed=slow' => 'award=small', 'quality=excellent & speed=slow' => 'award=small', 'quality=bad & speed=regular' => 'award=minimum', 'quality=ok & speed=regular' => 'award=small', 'quality=good & speed=regular' => 'award=small', 'quality=excellent & speed=regular' => 'award=excellent', 'quality=bad & speed=fast' => 'award=small', 'quality=ok & speed=fast' => 'award=good', 'quality=good & speed=fast' => 'award=good', 'quality=excellent & speed=fast' => 'award=excellent', 'quality=bad & speed=fastest' => 'award=small', 'quality=ok & speed=fastest' => 'award=good', 'quality=good & speed=fastest' => 'award=excellent', 'quality=excellent & speed=fastest' => 'award=excellent', );
and I was wondering if that could be replaced with just an array (in my original post), for prevention of errors and maintainability.

Just a thought.

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds


Comment on Re^3: RFC: A Beginners Guide to Fuzzy Rules-Based Systems
Download Code
Replies are listed 'Best First'.
Re^4: RFC: A Beginners Guide to Fuzzy Rules-Based Systems
by lin0 (Curate) on Oct 12, 2006 at 16:55 UTC

    Hi talexb,

    Now, I got it!

    It will be hard to change that particular chunk of code for an array because of the way those statements are treated in the AI::FuzzyInference module (please, see the code below). However, I will think about your idea and see if I can suggest some improvements to the module

    thank you

    lin0


    # sub addRule() - public method. # # Adds fuzzy if-then inference rules. # # $obj->addRule('x=medium' => 'z = slow', # 'x=low & y=small' => 'z = fast', # 'x=high & y=tiny' => 'z=veryfast'); # spaces are optional. The characters [&=|] are special. sub addRule { my ($self, %rules) = @_; for my $k (keys %rules) { my $v = $rules{$k}; s/\s+//g for $v, $k; push @{$self->{RULES}} => [$k, $v]; } return 1; }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://577846]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (16)
As of 2015-07-07 21:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls