Flint Toolkit

Category Intelligent Software>Fuzzy Logic Systems/Tools and Intelligent Software>Bayesian Network Systems/Tools

Abstract The Flint Toolkit is an advanced sub-system which augments the decision-making power of both Prolog [Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence (AI) and computational linguistics] and Flex (see G6G Abstract Number 20185).

Flint provides a comprehensive and versatile set of facilities for programmers who wish to incorporate uncertainty within their expert (knowledge-based) systems and decision support applications. Products features/capabilities include:

Flint --

Traditional expert (knowledge-based) systems work on the basis that everything is either true or false, and that any rule whose conditions are satisfiable is useable, i.e. its conclusion(s) are true. This is rather simplistic and can lead to quite brittle expert (knowledge-based) systems. Flint provides support for where the 'domain knowledge' is Not so clear-cut.

Flint supports three (3) treatments of uncertainty, namely: Fuzzy logic, Bayesian updating and Certainty factors. Flint does this by augmenting the normal backward-chaining rules of Prolog and, where Flex is present, by extending the Knowledge Specification Language (KSL) of Flex.

Fuzzy Logic --

Fuzzy Logic is a superset of conventional Boolean logic with extensions to cater to imprecise information. Fuzzy logic permits vague information, knowledge and concepts to be used in an exact mathematical manner. Words and phrases such as 'fast', 'slow', 'very fast', 'quite slow', 'Not very fast' are used to describe continuous, overlapping states. This enables qualitative and imprecise reasoning statements to be incorporated within rule-bases (knowledge-bases) so producing simpler, more intuitive and better behaved models.

According to Zadeh, the father of Fuzzy Logic, the linguistic description of a system is much more effective and less specific than the numerical or mathematical description.

Fuzzy Logic is based on the principle that every crisp value belongs to all relevant fuzzy sets to various extents, called the degrees of membership. These range from 0 (definitely Not a member) to 1 (definitely is a member) with values between generated by a membership function.

This contrasts with conventional, Boolean logic, where membership of a set is either false or true, i.e. 0 or 1. This graduation from zero to one enables us to smooth out and overlap the boundaries between sets. Unlike Boolean logic where sets are mutually exclusive, Fuzzy Logic allows crisp values to belong to more than one fuzzy set. This means that whereas in a crisp system, only one rule might be fired and used, in a fuzzy system all rules are used, with each having some influence on the resulting output. This is more of a 'consensus approach' to expert (knowledge-based) systems.

The advantages of fuzzy logic expert (knowledge-based) systems compared to Non-fuzzy expert (knowledge-based) systems are that they typically require fewer rules, need fewer variables, use a linguistic rather than a numerical description, and can relate output to input for any device without needing to understand the device's inner workings.

Fuzzy Editor --

Flint comes with an easy-to-use Fuzzy Editor which lets you define and also edit 'membership functions'. The Fuzzy Editor generates either Prolog or Flex code through its graphical user interface, depending on which is required.

Bayesian Updating --

Bayesian Updating provides a means of propagating probabilities. Bayesian networks are a rich and advanced way of building probabilistic models. The perceived uncertainty within the model, as represented by the CONFIRMS and DENIES weights within the rules, is propagated through the network by the probabilistic 'inference engine' and revised in the light or absence of data.

Certainty Factors --

Certainty theory, as used in MYCIN (MYCIN was an early expert (knowledge-based) system developed over five or six years in the early 1970s at Stanford University), represents an alternative to Bayesian Updating. Instead of using probabilities, each assertion has a certainty value between 1 and -1 associated with it, as do rules.

The updating procedure for certainty values consists of adding a +ve or - ve value to the current certainty of a hypothesis. This contrasts with Bayesian updating where the odds of a hypothesis are always multiplied by the appropriate weighting.

System Requirements

Manufacturer

Manufacturer Web Site Flint Toolkit

Price Contact manufacturer.

G6G Abstract Number 20186

G6G Manufacturer Number 101711