DocuFLIP++ - FLIP++ user interface

FLIP++ User Interface

In the following we will use a simple example, which is actually identical to the one used in the FLIP++ Sample Code which is a part of DocuFLIP++. Although very simple and not too realistic it should give you a brief impression of how to use the FLIP++ user interface.

Suppose we have a heating system that is controlled by an indoor and outdoor temperature sensor. This gives us an idea of what to use for linguistic variables: heating, indoor and outdoor. Furthermore, we need a representation of the specific values the linguistic variables can have. As we use a fuzzy system it is rather straightforward to define these values called linguistic terms. Apart from the linguistic level we also need some parameters to tell the system how to transform the linguistic level into a sound mathematical representation. Finally, we can add some rules and thereby provide the system with information about the interrelationship of the linguistic variables, i.e. in terms of our example the relationship between the outdoor and indoor temperature on the one side and the level of heating on the other side. After the values of the input variables have been set, an evaluation can be done.

Main application window

Initially, we find ourselves in the main application window. It encompasses all the features of FLIP++: the user can define linguistic variables, attach a set of parameters to them, add rules to put knowledge into the system, and evaluate a well defined sytem of rules, linguistic variables and parameters. Another important feature is the definition of the membership functions and their graphical representation.

How to define a ParameterSet

Before we start defining our linguistic variable we must define the ParameterSets which are fundamental for every linguistic variable. This can be done by clicking the show parameter list button in the main application window. A new window parameter list is shown on the screen that enables the user to define various parameters concerning a linguistic variable. It shows all parameter sets available. They can be selected by clicking the mouse button. With the buttons ADD and DELETE it is possible to add or remove ParameterSets. Furthermore, it is possible to read ParameterSets from and write to files by clicking the File Button. When writing to a file, all ParameterSets currently displayed and hence stored in memory are written to the file. Among the individual parameters of a ParameterSet are the name, the range with its lower and upper end, the median, the distribution, the importance, and the dilatation. This is exactly the same as in the FLIP++ Sample Code.

A ParameterSet also refers to a specific set of linguistic terms, which has to be defined. These terms are displayed in the term list. New terms can be added to the list by clicking ADD TERM. Moreover, the term colour used in the graphical representation can be modified.

Coming back to our example, we learn from the short description above that we need three parameter sets corresponding to the three linguistic variables. We start with the ps_outdoor ParameterSet. First, we use ADD to enter the new ParameterSet. A new window new set of parameter comes up asking for all the parameters, The number of linguistic terms specified in the item how much terms determines the entries in the term list of the parameter list window. After entering the same values for the parameters as in the FLIP++ Sample Code and clicking the OK Button, the programm returns to the parameter list window. Here it is possible to rename the linguistic terms as they are given some default values which might not be appropriate for a specific example. In our example the linguistic terms are again identical to the ones used in the FLIP++ Sample Code.

How to define a linguistic variable

Now we return to the main application window. The menu variables offers three items that enable us to add, edit and delete a linguistic variable. As we want to use three linguistic variables in our example, we have to apply the ADD variable item three times. Each time a small request box is shown asking for the name of the linguistic variables and the ParameterSet that should be attached to the variable. We start with cv_outddor and attach ps_outdoor to it, and so on. Editing and deleting a variable are straightforward operations. After a new linguistic variables has been created, it can be found in the constraints list.

Membership functions

The menu terms/msf provides features to modifiy the shape of the membership function of the linguistic variables selected in the constraints list. When clicking the show msf button you can see the shape of the default membership function for the currently selected linguistic variables in the constraints list. The membership function of the currently selected linguistic terms of that variable is drawn in bold lines. Now, it is possible to modifiy the membership function by dragging the points with the mouse pointer, adding a point afer selecting the menu item ADD a Node to msf, and deleting a point after selecting the menu item DEL a Node from msf. Furthermore, the menu item SET value of variable allows to set a specific crisp value for the variable just by clicking at the appropriate position in the graphical representation. Also, it is possible to change the colour of a specific linguistic term.

How to define the rules

Defining the rules in FLIP++ is an easy task. You just position your mouse pointer in the rules window at the bottem of the main application window. Then you can write the rules. Of course certain syntactical limitations must be observed when designing rules. Each rule follows the structure

IF (term-list) THEN (term) WITH CERTAINTY (x).
where term-list is
(term) (concat_operator) [ (term) (concat_operator) ...]
and term is
(linguistic variable) = (linguistic term)
and concat_operator is
{ AND | OR }

The item UPDATE edits in the menu rules checks whether any changes made in the rules window are syntactically sound and adds the rules to the rulebase. The item show how much rules allows to display either only the rules of the currently selected linguistic variable in the rules windows or all the rules of all linguistic variables. It is also possible to change the output style using change output rule style. Then, '=' is used instead of IS and the certainty of a rule is displayed in parenthesis. Of course, it is possible to edit the rules in either style just depending on which is currently selected.

How to select operators

As we have seen above, within the rules there are operators used to concatenate the various terms. FLIP++ offers some operators the user can choose from. By clicking the item EDIT operator set in the rules window a new window operator set is displayed on the screen. Here you can specify the operators used for the and, or, importance, certainty, inference, accumulate, and defuzzification operations. For a more detailed description of these various operations have a look to the FLIP++ library description.

How to evaluate and interpret the results

After all parts of a system are defined, we can move on to start the computation. This is done by clicking the EVALUATE button in the main application window, which results in computing the value of the currently selected linguistic variable. So, we must first select our output variable cv_heating. After the evaluation has been completed, the crisp value is displayed below the terms window. To get a better impression of the result and be able to make some interpretations , it is necessary to see the fuzzy value of the result. FLIP++ also allows the user to do this by clicking the show instantiated msf button. In the same manner as the membership function the instantiated membership function generated by the evaluation is displayed. For each of the linguistic terms that b elong to the selected and evaluated linguistic variable the instantiation shows how well it is satisfied. Of course, the instantiated membership function can not be edited since it is created by the calculation. Often it provides the user with a good view of whether the system is working to its needs or not and therefore delivers a basis for fine-tuning steps.

Back to DocuFLIP++ overview StarFLIP home page.

(c)1996 Andreas Raggl, Mazen Younes, Markus Bonner, Wolfgang Slany

Last modified: Tue Jun 24 15:41:35 MET-DST 1997 by StarFLIP Team