In the following we will use a simple example, which is actually identical to the one used in the ConFLIP++ Sample Code part of DocuFLIP++. Although very simple and not too realistic it should give you a short impression of how to use the ConFLIP++ user interface. It is also recommended, although not necessary, to go through the documentation of FLIP++ in DocuFLIP++. There are many similarities between ConFLIP++ and FLIP++ as ConFLIP++ is based on FLIP++.
One of the features of ConFLIP++ is that is goes a little bit farther than FLIP++ when it comes to the representation of constraints. Whereas in FLIP++ you simply define linguistic variables with their linguistic terms and the rules that show the interrelationship between the variables, ConFLIP++ also allows a direct constraint definition and then generates the appropriate rules automatically. Generally speaking, the constraints can be divided into two groups: The compare constraints and the concat constraints. The former allows us to compare a linguistic variable with a specific value and to evaluate how well this comparison is satisfied, the latter constraint type is an aggregation of two other constraints. One can easily see, that the concat constraint hence enables us to build a hierarchy of constraints or put in another way, a constraints tree. This is especially useful when you have a system where a specific order is inherent and where some constraints are underlying constraints for various other constraints.
Similarly to the ConFLIP++ Sample Code we build our example system by using some predefined parameters and then create the hierarchy of constraints that refer to chemical compatibilities, which are relevant to the process of steelmaking.
Besides, we must distinguish between a fuzzy and crisp input/output value in the case of compare constraints. With concat constraints it is also possible to have mixed values because there are always two input parameters, i.e. the two constraints that are to be concatenated. To create a new table one either chooses the NEW compare table or the NEW concat table button at the bottom of the window. Then a windows prompts for the name of the table and the particular fuzzy/crisp/mixed input and output terms, which are the sets of linguistic terms defined in the previous paragraph.
Furthermore, an existing set of constrains can be edited when clicking the item constraint handling. All these options lead to the same window, which is almost exactly the same as the FLIP++ user interface. For that reason we will be refering to the description given for any particulars.
Roughly speaking, the main differences to the FLIP user interface are: instead of linguistic variables you create constraints (either concat or compare), internally these are in turn represented as linguistic variables (CombinedVariable objects). Furthermore, it is possible to derive constraints directly from the definition of the constraint infos with the item NEW info from container. Of course the created constraints can be edited and deleted. The menus terms/msf and rules behave in the same way as in the FLIP++ user interface. Also, slightly different from FLIP++ the switch var/con term chooses between either displaying the terms of the variable contained in a compare constraint or the terms of the compare constraint variable itself. For the concat constraint this switch does not have a meaning.
Again, please note that you always get a default set of rules for each constraint, which of course can be modified. One can easily see that in principle the rules created by ConFLIP++ according to the table, parametersets, linguistic terms for a specific constraint could also be modified with FLIP++. But this would mean a lot of tedious work, which can otherwise be done automatically. Modifying the rules generated by ConFLIP++ is just the fine-tuning work that might be necessary to obtain reasonable results.
Going back to the set of constraints window, we can start the evaluation of a constraint by choosing it in the list of constraints and clicking the evaluate button. This brings a window to the screen prompting for the name of the evaluation and the values which can be set for the input variables. Prior to evaluation it is necessary to set values for all the variables used in the underlying constraints which the ConFLIP++ always prompts the user for . Then an evaluated constraint is created, which can be seen in the evaluated constraints window.
(c)1996 Andreas Raggl, Mazen Younes, Markus Bonner, Wolfgang Slany
Last modified: Tue Jun 24 15:35:49 MET-DST 1997
by StarFLIP Team