These HTML pages are available in book form as a postscript file.
Please select a topic below.
Note: This documentation assumes the reader is already familiar with fuzzy logic and fuzzy sets. No attempt is made to explain these concepts or why one would want to use a fuzzy logic system within an intelligent agent (or anywhere else, for that matter).
The documentation also assumes a familiarity with Java concepts, including JavaBeans. No attempt is made to explain classpaths, compiling Java programs, manifest files, jar files, or JavaBean design patterns.
The heart of the fuzzy system is the FsRuleSet class, which is derived from the AbleObject class and the AbleBean interface. This means that FsRuleSet objects can be created and manipulated from within the Able Editor IDE, using the menubar, toolbar and context menus that the Able Editor provides to customize the fuzzy ruleset and wire it to other ABLE objects.
The fuzzy system also can be used outside of ABLE to provide
fuzzy logic to any Java application. The fuzzy ruleset editor can
be started independently of the Able Editor by using one of the
runFuzzyEditor
shell
scripts in the able/bin
directory.
And, like any other AbleObject, an FsRuleSet
object can be created and manipulated by any Java program by using
the public methods on the object. These methods are documented in
the fuzzy system JavaDoc output provided with the ABLE package.
Like other AbleBeans, fuzzy rulesets can be created with the Able Editor and customized (with the fuzzy ruleset editor). They can receive (perhaps filtered) input and write output through managed buffer connections. PropertyChangeListeners can register with fuzzy rulesets. In addition, fuzzy rulesets are Sensor and Effector managers, meaning that methods of external objects can be registered and called from fuzzy rules. Fuzzy rulesets can be saved as source rule language files, as serialized Java beans, and as fuzzy XML documents.
In a fuzzy system, all (fuzzy) rules are evaluated in parallel, each and every rule (except those eliminated through alphacut thresholding) playing a part in the final outcome. This fuzzy system lets the rule author choose different strategies for inferencing, correlating antecedents with consequents, and defuzzifying fuzzy numbers.
Looking at the examples provided in the
com.ibm.able.examples.fuzzy
package
is a good place to observe some of these different ways of
creating and using fuzzy agents.