Home

FuzzyCLIPS Version 6.04A User's Guide

image

Contents

1. 0 00 20 00 Orchard 40 00 60 00 80 00 100 00 41 5 Using the FuzzyCLIPS Extensions Fuzzy Value base fv Linguistic Value slightly base 00 595 90 5 85 A 80 UTS 70 ii 65 60 55 50 45 X 40 35 30 lt 29 20 15 Wo 10 x 05 OO X XX Ax AG AA x 0 00 20 00 40 00 60 00 80 00 100 00 ee Fuzzy Value base fv Linguistic Value above base 00 95 x 90 x 85 80 T9 70 K s63 60 70D a 50 X 45 40 Gi OO 30 s 25 20 2159 10 05 OQ X KKK KK KK Kk Ck Ck kk kk kk kk KK 0 00 20 00 40 00 60 00 80 00 100 00 O02 COO 0 00 0 0 0 0 0 0 0 0 0 0 c Oo 42 ERB 1054 FuzzyCLIPS Version 6 04A 5 3 Modifiers Hedges and Linguistic Expressions Fuzzy Value base fv Linguistic Value below base Li OOK KKK KK KKK KK KK 95 90 85 80 UTS 70 65 60 55 50 45 40 35 30 lt 29 20 15 10 05 00 COS C CO CO 23 9 OC OO CO OD CO CO C 62 Fuzzy Value 00 95 90 85 80 T9 70 265 60 70D 50 45 4
2. Fe ve Pc Px Fh vh Ph Px ve 0 1 cold water valve position vh e 0 1 hot water valve position Pc f neighbor watering lawn clothes washing machine etc Ph f dish washing machine water consumption etc Changes of Pc and Ph are simulated A 3 Shower Control Objectives The temperature of the water leaving the shower head must never exceed 45 C This is generally impossible The water temperature should rarely be less than 15 C The water temperature should have a mean value of 36 C and have a small variance The water flow should have a mean value of 12 L min and have a small variance Qv Eo da d The hot and cold water valve actuators should be moved infrequently The control computer wants to spend more time washing than adjusting the taps Orchard 85 Appendix A Th Fh Te Fe Hot Water Valve B Cold Water Valve ZX Human SZ Controller Ph Figure 19 Shower A 4 Fuzzy Control Loop Figure 20 shows a schematic of a control loop with a fuzzy logic controller PROCESS output parameters FUZZIFICATION control action DEFUZZIFICATION fuzzy control action FUZZY LOGIC CONTROLLER Figure 20 Fuzzy Control Loop 86 ERB 1054 FuzzyCLIPS Version 6 04A 8 1 A 5 Text Based Version No Graphical Interface shwrNOUI clp A 5 1 Steps to follow to run fuzzy shower example UNIX version Start a version of FZ_CLIPS 2 Load show
3. Note that this gives AND higher precedence than OR and that modifiers are basically unary operators with the highest precedence One can control the order of the expression evaluation through the use of brackets and These brackets must be separated from other items by a space due to the nature of the CLIPS token parser Therefore A or B and C or D is the same as Aor BandC orD The following graph shows an example of the fuzzy sets temp hot temp cold and temp not hot or cold 48 ERB 1054 FuzzyCLIPS Version 6 04A 5 4 Using Fuzzy Variables in LHS Patterns Fuzzy Value temp Linguistic Value hot cold not hot OR cold 0 0 95 A 90 e 85 x t 80 75 d 5 70 ies 2X 65 60 55 50 45 y 40 35 M 30 25 20 15 10 05 a SUL I PEDE OG OD OGG TY 0 00 20 00 40 00 60 00 80 00 100 00 5 4 Using Fuzzy Variables in LHS Patterns A fuzzy LHS pattern is of the form fuzzy variable name lt linguistic expr gt or fuzzy variable name or fuzzy variable name lt var name gt or fuzzy variable name lt var name gt amp lt linguistic expr gt or template name lt slot description gt where indicates that there are one or more of the lt slot description gt entries at
4. Universe of Discourse 5 Using the FuzzyCLIPS Extensions create fuzzy value temp hot hot kkk kk kk kk kk kk kk kk kkk kkkkk OOK RRR e e ee eee e e ke ke From ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 51 deftemplate system slot name slot t outflow type FUZZY VALUE temp assert system name sysA t outflow not hot lt Fact 1 gt plot fuzzy value t nil nil create fuzzy value temp hot get fuzzy slot 1 t outflow Fuzzy Value temp Linguistic Value hot not hot OO 95 90 85 80 t 75 t 70 t 65 60 55 50 45 40 35 30 25 20 15 10 05 00 dock ke e ke ke e ee ke e x 1 1 1 1 1 1 1 1 1 1 0 00 20 00 40 00 60 00 80 00 100 00 oo0oo0o0000 000 0000000 00000O0O A Universe of Discourse From 0 00 to 100 00 Orchard 75 5 Using the FuzzyCLIPS Extensions 5 9 14 Controlling the Result of Defuzzification The defuzzifcation functions are defined to return values that depend on the fuzzy value that they are provided with The moment defuzzify function see section
5. l y y 2 y 0 333 y 0 5 y 3 see 12 see 12 y 2 1 2 1 y 2 y 1 25 normalizes the fuzzy set so that the maximum value of the set is scaled to be 1 0 y y 1 0 max value if y in 0 0 5 if y in 0 5 1 intensify norm plus A AND not very A These modifiers change the shape of a fuzzy set using mathematical operations on each point of the set In the above table the variable y represents each membership value in the fuzzy set and A represents the entire fuzzy set i e y 2 squares each membership value and very A applies the very modifier to the entire set Note that when a modifier is used it can be used in upper or lower case NOT or not or even a mix of cases NoT The following diagrams show the effect of each of the modifiers on a base fuzzy set The diagrams have been pro duced using the plot fuzzy value function described later in the manual Fuzzy Value Linguistic Value So BE D O 6 60 0 00 0 60 OO OO S Oi 00 95 90 85 80 io 70 65 60 55 50 45 40 39 30 25 20 15 10 05 OOK ox A A KK KK 05 base fv base 00 20 00 Orchard 40 00 60 00 80 00 100 00 39 Fuzzy Value 15 95 90 5 85 80 UTS 70 65 60 55 50 s 45 40 i 35 30 lt 29 i 20 15 10 05 00 CO
6. once they exist they exist unless certainty factors are being used as discussed below then the certainty factors are modified to account for the new evidence But in a fuzzy system refinement of a fuzzy fact may be possible Thus in the case where a fuzzy fact is asserted this fact is treated as giving con tributing evidence towards the conclusion about the fuzzy variable it contributes globally If information about that fuzzy variable has already been asserted then this new evidence or information about the fuzzy variable is combined with the existing information in the fuzzy fact The concept of fact duplication for fuzzy facts therefore does not apply as it does for standard CLIPS facts See section 7 1 for details There are many readily identifiable methods of combining evidence In the current version of the system the new value of the fuzzy fact is calculated in accordance with the formula F Fy U Fe where F is the new value of the fuzzy fact F is the existing value of the fuzzy fact F is the value of the fuzzy fact to be asserted U denotes the union of two fuzzy sets Fr in F Fr U FY Figure 11 Union of fuzzy sets global contribution The uncertainties are also aggregated to form an overall uncertainty Basically two uncertainties are combined using the following formula CF maximum CF CF 1 A membership function of a fuzzy set C which is the union of fuzzy sets A and B is d
7. 0 0 0 2 0 4472135954999579 35 0 5916079783099616 5 0 7071067811865476 7 0 8366600265340756 9 0 9486832980505138 more_or_less large_positive CF 1 00 63 5 9 7 5 9 8 64 5 Using the FuzzyCLIPS Extensions Command get fuzzy display precision Syntax get fuzzy display precision Purpose Returns an integer value that is the current display precision Controlling the Fuzzy Inference Method set fuzzy inference type get fuzzy inference type Command set fuzzy inference type Syntax set fuzzy inference type lt inf type gt Purpose Sets the current inference type to one of max min or max prod The default is max min The effect of this is described in more detail in Section 4 3 1 3 Note that clear will not reset this value to max min Command get fuzzy inference type Syntax get fuzzy inference type Purpose Returns a symbol that is one of max min or max prod indicating the current inference type Setting the Fuzzy Pattern Matching Threshold set fuzzy inference type get fuzzy inference type Command set alpha value Syntax set alpha value lt alpha val gt Purpose When fuzzy slots are matched to fuzzy patterns on the LHS of rules the match is considered to be successful if there is any overlap intersection between the two fuzzy sets involved in the matching This function allows the match to succeed only if the maximum of the inter section set has a membership value greater than or
8. 05 2 O O K eo eee e e e e e e e e e ke e ee e k k k k OOo OOo oo oococococococoooocoooconun 0 00 20 00 40 00 60 00 80 00 100 00 70 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions 5 9 11 Accessing a Fuzzy Slot in a Fact get fuzzy slot Command get fuzzy slot Syntax get fuzzy slot lt fact var gt lt slot name gt get fuzzy slot integer lt slot name gt This function will retrieve the fuzzy value associated with a fuzzy slot in a fact The first argument can be a variable that is associated with a fact address or an integer that is the fact number for a fact If the fact is a fuzzy deftemplate fact one whose relation name is a fuzzy deftemplate name then the second argument is not needed since the only slot for the fact is the fuzzy value If the fact is a standard deftemplate fact with fuzzy slots then the second argument is a symbol that identifies the slot to access Note that the slot of fuzzy deftem plate facts is always name GenericFuzzySlot and it could be accessed using that name Purpose Example 48 defrule testl get fuzzy slot f temp hot gt plot fuzzy value t nil nil get fuzzy slot f defrule test2 get fuzzy slot f system name sysA t outflow hot gt plot fuzzy value t nil nil get fuzzy slot f t outflow 5 9 12 Displaying a Fuzzy Value in a Format Function This is not a function or command but is an additio
9. Adobe Acrobat PDF file The documentation is only included with the UNIX version fzclips tar Z both PostScript format and PDF for mat If the FrameMaker files are required by others then they can be made available on request If using the WWW to access FuzzyCLIPS you will be prompted to provide your name and the address of your organization you then will be able to access one or all of the documents On a UNIX system the following commands are used to install FuzzyCLIPS uncompress fzclips tar Z only required if accessed from ftp WWW will automatically uncompress the file tar xvf fzclips tar On a PC system the program fzclips exe when executed will uncompress and install the FuzzyCLIPS system Exe cute the program with the following commands mkdir fzclp604 create a directory for the files to be unpacked into the fzclips exe file should be in this directory cd fzclp604 fzclips path the path is necessary to recreate the correct directory structure if omitted all files will be placed in the current directory without any sub directories If you have a version of the PAK archiving compression program then you could extract only the parts that you need instead of the entire system Other files of interest found on the ftp site in the directory pub fzclips are 1 Sun Sparc is a registered trademark of Sun Microsystems 2 UNIX is a registered trademark of AT amp T Orchard 3 README README BUGS fixes
10. c d are numbers that represent the parameters of the respective functions Orchard 35 5 Using the FuzzyCLIPS Extensions Example 17 deftemplate Tx output water temperature 5 65 Celsius cold z 10 26 standard set representation OK PI 2 36 hot s 37 60 FuzzyCLIPS converts all standard notation to singleton representation Nine points equally spaced along the x axis are selected to represent the functions see Figure 17 The number of points 9 can be changed by modifiy ing the value of ArraySIZE which is defined in the file fuzzypsr h and then recompiling FuzzyCLIPS Note how ever that increasing this size will increase the computational load during fuzzy inferencing Also note that in many instances a simple 2 or 3 point singleton set that approximates these functions will be acceptable and will result in less computation during inferencing Tx cold Theoretical vs Actual Internal Representation 1 0 0 8 _ Theoretical 0 6 _ EM Actual 0 4 0 2 _ 65 0 10 20 30 Figure 17 Approximation of standard functions As a special note consider the case where the parameter a is equal to c for the S or Z functions In this case two points will be used to represent the function Example 18 S 10 10 will be represented 10 0 10 1 Z 10 10 will be represented 10 1 10 0 36 ERB 1054 FuzzyCLIPS Version 6 04A 5 2 Standard Deftemplate Definitions with Fuzzy Slots fields For
11. database and the fuzzy sets are illustrated inFigure 5 FUZZY CRISP EXAMPLE 1 0 fuzzy fact factl fuzzy fact fact2 00 20 40 60 80 10 0 FUZZY FACT Figure 5 Fact and antecedent fuzzy sets Orchard 17 4 Fuzzy Expert Systems First the necessity is calculated as in Figure 6 NECESSITY CALCULATION fuzzy fact fact fuzzy fact fact2 complement minimums maximum of minimums 0 0 2 0 4 0 6 0 8 0 10 0 FUZZY FACT N 1 P 0 3333 Figure 6 N F IF Since the necessity is less than 0 5 S N F Fy 0 5 P F Fy see Figure 7 SIMILARITY CALCULATION 1 0 P Fy Fa 0 8 Fa Fa fuzzy fact factl S fuzzy fact fact2 P i minimums maximum of minimums 0 0 2 0 4 0 6 0 8 0 10 0 EUZZY FACT S 0 3333 0 5 0 8 0 6667 Figure 7 S N F lF a 0 5 P E IF And thus CF 0 7 0 8 0 6667 0 3733 18 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques 4 3 1 3 FUZZY FUZZY Simple Rule If the type of rule is FUZZY FUZZY and the fuzzy fact and antecedent fuzzy pattern match in the same manner as discussed for a FUZZY CRISP rule then it is shown in 16 that the antecedent and consequent of such a rule are connected by the fuzzy relation R F F where F is a fuzzy set denoting the value of the fuzzy antecedent pattern F is a fuzzy set denoting the value of the fuzzy consequent In the cur
12. fuzzyvaluep fv assert temp cold run TRUE 5 9 10 Creating and Operating on FUZZY VALUEs create fuzzy value fuzzy union fuzzy intersection 66 fuzzy modify Command create fuzzy value Syntax create fuzzy value lt fuzzy deftemplate name gt description of fuzzy set Purpose This function allows a fuzzy value to be created A fuzzy value is a fuzzy set that is associ ated with a particular fuzzy deftemplate The fuzzy deftemplate determines the universe of discourse for the fuzzy set and the terms that can be used to describe the fuzzy set The first argument lt fuzzy deftemplate name gt is the name of a fuzzy deftemplate The remaining parts describe the fuzzy set as is done for a fuzzy slot when a fuzzy fact is asserted This can be a linguistic expression a singleton specification or a standard function expression see Section 5 1 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 44 create fuzzy value temp cold create fuzzy value temp very hot or very cold create fuzzy value temp pi 10 20 create fuzzy value temp s x x 10 create fuzzy value temp 10 1 20 0 defrule test gt bind fv create fuzzy value temp cold assert temp fv NOTE use of variable here Command fuzzy union Syntax fuzzy union lt fuzzy value gt lt fuzzy value gt Purpose Returns a new fuzzy value that is the union of two other fuzzy values Both
13. three 3 0 3 1 3 0 might represent the crisp concept 3 as a fuzzy set It is shown graphically as Hthree Example 16 Another more complex and probably unrealistic set might be defined with the following set of singleton values weird 1 0 1 1 1 0 3 0 4 25 4 1 4 4 4 5 6 1 8 0 The graph follows Note that in this case the point 4 4 is dis carded Hweird Orchard 33 5 Using the FuzzyCLIPS Extensions 5 1 1 2 Standard Function Representation Frequently it is useful to describe a membership function using one of a set of standard functions S IL or Z Parameters of these functions can be chosen depending on applications These functions are defined as follows and are shown graphically in Figure 16 S u a c 0 u lt a ue U u a 2 a c a lt us c a 2 S u a c S u a c S u a c 1 c lt u Z u a c 1 S u a c II u d b S u b d b usb I u d b Z u b b d b u Note that the names are suggestive of the shape of the functions 34 ERB 1054 FuzzyCLIPS Version 6 04A 5 1 Defining Fuzzy Variables in Deftemplate Constructs 1 S function 0 a C U 1 Z function 0 a c U 1 II function 0 b d b b d d U Figure 16 Standard fuzzy set functions A standard representation of a membership function has the following format standard S ac l sac l Zac l zac l PIdb pid b where a b
14. 4 4 1 is undefined in the case of a fuzzy set with area equal to zero This can occur when the fuzzy set is a crisp value or the fuzzy set is flat at membership value of 0 0 In these cases by default the function will return the midpoint of the universe of discourse To allow a user to detect these situations a special function is provided Command is defuzzify value valid Syntax is defuzzify value valid Purpose This function is used to check if the value returned by the last defuzzify function is valid or not It returns TRUE if a valid value was be returned or FALSE if not In the current imple mentation only the moment defuzzify function can return an invalid default value If no defuzzify functions have yet been called the return value is TRUE Normally one will use this function immediately after the defuzzify function is called For example Example 52 defrule defuzzify temperature f temperature gt bind temperature value moment defuzzify f if is defuzzify value valid then do something with the defuzzified value else perhaps use the maximum defuzzify function 76 ERB 1054 FuzzyCLIPS Version 6 04A 5 10 Simple Example 5 10 Simple Example This section describes the output of watching facts and rules fire for the example found in the file simplTst clp Please note that this was not intended to be a real example of the use of FuzzyCLIPS For that see the other exam ples included in the
15. 6 04A 5 5 Using Fuzzy Variables in Deffacts Constructs defrule quite complex lhs person name n ht h amp very tall gt printout t n is very tall with a height of about maximum defuzzify h get u units h crlf In the last example h will become the fuzzy value that matches the very tall specification It can then be used as an argument to various functions that can process fuzzy values such as maximum deffuzzify or get u units 5 5 Using Fuzzy Variables in Deffacts Constructs The syntax of the deffacts construct has been extended to allow fuzzy facts to be declared Both fuzzy and non fuzzy crisp facts can be declared in the same deffacts construct Also certainty factors for crisp or fuzzy facts may be specified Fuzzy fact specifications in a deffacts construct have the following form deffacts deffacts name lt comment gt lt RHS pattern gt where lt RHS pattern gt has been extended as follows lt RHS pattern gt lt ordered RHS pattern gt lt template RHS pattern gt lt fuzzy template RHS pattern gt lt ordered RHS pattern gt lt symbol gt lt RHS field gt CF lt certainty factor gt lt certainty factor expression gt lt template RHS pattern gt deftemplate name gt lt RHS slot gt 5 CF lt certainty factor gt lt certainty factor expression gt lt fuzzy template RHS pattern gt lt fuzzy template name gt lt description of fuzzy
16. added and for simple ones to be added with better performance The only source file that should need to be changed is fuzzymod c Most modifiers can be added by simply following the code for system supplied modifiers that are in this file In general it is only necessary to do the following things 1 Modify the function initFuzzyModifierList to identify the name of the modifier and it s C code function example for the very modifier is given below AddFuzzyModifier very veryModFunction NULL dif DEFFUNCTION CONSTRUCT NULL endif 2 Then the function definition is added example for the very modifier is given below 46 ERB 1054 FuzzyCLIPS Version 6 04A 5 3 Modifiers Hedges and Linguistic Expressions BOK KKK KK I KK A I ck kok ke ke ke e x kx x f veryModFunction x sy implements the very hedg j Jim each element is squared y 2 xf rs 2 BOK KKK KK KI KK I kokckckok ck ckokck ck kc ke ke e x kx x static VOID veryModFunction fv struct fuzzy value fv concentrate_dilute fv 2 0 The concentrate dilute function handles all of the similar types of modifiers that involve an exponentiation opera tion on the membership values In this function there is a call to another function called Yexpand This code deter mines if any straight line segments need to be expanded into further points so that the exponentiation operation will have the desired effect For example if the line s
17. arguments must be of type FUZZY VALUE Example 45 deftemplate temp 0 100 C cold z 20 70 hot s 30 80 fuzzy union create fuzzy value temp cold create fuzzy value temp hot cold or hot plot fuzzy value t nil nil create fuzzy value temp cold create fuzzy value temp hot fuzzy union create fuzzy value temp cold create fuzzy value temp hot Orchard 67 5 Using the FuzzyCLIPS Extensions Fuzzy Value temp Linguistic Value cold hot cold OR hot OOK RRR RK ee eee ee KKK KKK KKK EK 95 90 85 m 80 75 70 65 60 x 55 50 45 B 40 o 35 t 30 25 t 20 t 15 t 10 05 m 004 E EEBBBBBRERPBBBBS 0 esse 1 1 1 1 1 1 1 1 1 1 0 00 20 00 40 00 60 00 80 00 100 00 oooooooooo0o0oo0o0o0o0oo0o0 ooo r Command fuzzy intersection Syntax fuzzy intersection lt fuzzy value gt lt fuzzy value gt Purpose Returns a new fuzzy value that is the intersection of two other fuzzy values Both arguments must be of type FUZZ Y VALUE 68 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 46 Orchard fuzzy intersection create fuzzy value temp cold create fuzzy value temp hot cold and hot plot fuzzy value t nil nil create fuzzy value temp cold create fuzzy value temp hot fuzzy intersection create fuzzy value temp c
18. consists of three elements The from and to should be floating point numbers They represent the begin and end of the interval that describes the domain of the fuzzy variable the universe of discourse The value of from must be less than the value for to The unit is a word that represents the unit of measurement optional The t are specifica tions for the fuzzy terms such as hot cold warm used to describe the fuzzy variable These specifications describe the shape of the fuzzy set associated with the terms Example 13 below shows an incomplete fuzzy deftemplate with only the universe of discourse specified Example 13 deftemplate water flow 0 100 liters sec 5 1 1 Primary Terms A primary term t i 1 n has the form lt name gt lt description of fuzzy set gt where lt name gt represents the name of a primary term used to describe a fuzzy concept and lt description of fuzzy set gt defines a membership function of the given primary term The membership function can be described using either a singleton representation a standard function representation or a linguistic expression that uses terms defined previously in the fuzzy deftemplate definition lt description of fuzzy set gt lt singletons gt lt standard gt lt linguistic expr gt 30 ERB 1054 FuzzyCLIPS Version 6 04A 5 1 Defining Fuzzy Variables in Deftemplate Constructs 5 1 1 1 Singleton Representation The grade of members
19. distribution CLIPS gt load simplTst clp Defining deftemplate speed_error Defining deftemplate speed_change Defining deffacts my_facts Defining defrule speed too fast j Defining defrule speed ok j Defining defrule get crisp value and print rslt j TRUE CLIPS reset gt f 0 nitial fact CF 1 00 gt f 1 speed error zero CF 0 90 0 0 1 0 0 11 0 0 gt Activation 0 gt Activation 0 speed ok f 1 speed too fast f 1 CLIPS gt run FIRE 1 speed too fast f 1 gt f 2 speed change CF 0 63 0 1 0 0 0 1495 0 0991 gt Activation 1 get crisp value and print rslt f 2 FIRE 2 speed ok f 1 lt f 2 speed change CF 0 63 0 1 0 0 0 1495 0 0991 lt Activation 1 get crisp value and print rslt f 2 gt f 3 speed change CF 0 63 linguistic description of fuzzy set singletons describe fuzzy set in detail CF 2 0 9 0 7 for fuzzy fuzzy rule retraction of fuzzy fact and reassertion as fact is modified 0 0 1 0 0 1 0 1 0 1333 0 06667 0 1495 0 0991 gt Activation 1 get crisp value and print rslt f 3 FIRE 3 get crisp value and print rslt f 3 Change speed by a factor of 0 3553202565269306 3 rules fired 46 87499999844391 rules per second 3 mean number of facts 3 maximum mean number of instances 1 maximum mean number of activations 2 maximum CLIPS Orchard Run time is 0 06400000
20. following files and directories are also contained in the directory FZCLP604 assuming that this is the name of the directory in which the distributed system was placed clips hlp file used by the CLIPS help command clips6 hlp file used by the CLIPS help command ide_clps exe integrated Clips editor FZEXMPLE Directory with FuzzyCLIPS example programs linlst clp control of linear 1st order system linlstdl clp control of linear 1st order system with delay simpltst clp basic non sensical example fzcmplr clp fuzzy compiler example fzcmpmod clp fuzzy compiler example using MODULES shwrnoui clp shower example with NO graphical user interface there may also be some dat files that are the outputs for these programs PCINTFAC Directory containing files used to create the GUI interface for developers 1 cur 2 cur 3 cur 4 cur 5 cur 6 cur 7 cur 8 cur 9 cur wait cur clipsdde h dialog h menucmds c dialogl c menucmds h clipswin def clipswin ico dialog2 c query cur clipswin rc status c clipswin res ids h status h clipswin rws joe bmp main c system c main h clipscmd def diag win c clipsdde c diag win h menu c CLIPSWIN Directory with project files for Borland C 4 5 and FuzzyCLIPS executable clipswin exe FuzzyCLIPS windows version development GUI included clipswin ide Borland project file Orchard 7 3 Installation Information clipswin mak makefile for windows GUI version objfiles directory where object
21. fuzzy deftemplate definitions fuzzy patterns speci fications fuzzy slot assert specifications and in the fuzzy modify function Some examples below illustrate the use of the modifiers Example 22 deftemplate temp 0 100 C cold Z 20 40 hot S 60 80 freezing extremely cold defrule temp rule temp not hot and not cold gt printout t It s such a pleasant day crlf 5 3 2 User Defined Modifiers The FuzzyCLIPS user may also define modifiers that can be used in exactly the same manner as the predefined ones This can be done at the FuzzyCLIPS code level or for more complicated definitions or for efficiency at the C code level Adding a new modifier at the FuzzyCLIPS level is done with the function add fuzzy modifier modname modfunction where modname is the name symbol to be used for the modifier and modfunction is the name of a CLIPS function or a user defined deffunc tion that takes a floating point number and returns a floating point number the function should return a number between 0 and 1 and if it does not then it will be set to 0 if it is less than O or to 1 if it is greater than 1 the function will be passed numbers between 0 and 1 1 Note that this is different than the previous version of FuzzyCLIPS in which modifiers were added in the fuzzy deftemplate definition This handling of modifiers was felt to be much superior to the old style giving a good set of predefined modifi
22. h Dfuzzyval h Orchard Dfuzzydef c Dfuzzyrhs c analysis h bsave h classfun h clips h conscomp h crstrtgy h cstrcpsr h cstrnops h defins h dffctcmp h dffnxcmp h dfinsbin h engine h exprnops h factbin h factgen h factmngr h filecom h genrccmp h genrcpsr h globlcom h incrrset h insfun h inspsr h match h modulcmp h msgcom h multifld h objcmp h objrtcmp h pattern h predrpsr h retract h rulebsc h ruledef h scanner h stmgrtr h sysdep h tmpltdef h tmpltrhs h emathfun h textpro h Dfuzzydef h Dfuzzypsr h Dfuzzylhs c Dfuzzyutl c argacces h Dcfdef h classinf h clipsmem h constant h cstrcbin h cstrnbin h cstrnpsr h developr h dffctdef h dffnxexe h dfinscmp h evaluatn h exprnpsr h factbld h facthsh h factprt h filertr h genrccom h globlbin h globldef h inherpsr h insmngr h insquery h miscfun h moduldef h msgfun h multifun h object h objrtfnx h pprint h prntutil h router h rulecmp h ruledlt h setup h symblbin h tmpltbin h tmpltfun h utility h factfun h tmpltutl h Dfuzzylhs h Dfuzzyrhs h Dfuzzymod c bload h classcom h classini h clsltpsr h constrct h cstrccmp h cstrnchk h cstrnutl h dffctbin h dffctpsr h dffnxfun h drive h expressn h extnfunc h factcmp h factlhs h factrete h generate h genrcexe h globlbsc h globlpsr h inscom h insmoddp h insqypsr h modulbin h modulpsr h msgpass h network h objrtbin h objrtgen h precode h reorder h rulebi
23. that matches and asserts fuzzy facts Speed_error big assert Throttle change small where young big and small are fuzzy terms and age Speed error and Throttle change are linguistic fuzzy variables Each linguistic fuzzy variable has an associated fuzzy term set called primary terms in FuzzyCLIPS that is the set of values that the fuzzy variable may take For example the fuzzy variable water temperature might have Orchard 11 4 Fuzzy Expert Systems the primary term set cold warm hot where each primary term represents a specific fuzzy set Figure 3 illus trates the primary term values of the fuzzy variable water_temperature 10 20 30 40 50 60 70 80 TEMPERATURE C water_temperature cold water_temperature warm water_temperature hot Figure 3 Primary terms of a linguistic variable The syntax for defining fuzzy variables and fuzzy terms is discussed in detail in Section 5 1 4 2 Uncertainty Uncertainty occurs when one is not absolutely certain about a piece of information The degree of uncertainty is usually represented by a crisp numerical value on a scale from 0 to 1 where a certainty factor of 1 indicates that the expert system is very certain that a fact is true and a certainty factor of 0 indicates that it is very uncertain that a fact is true In FuzzyCLIPS a fact is composed of two parts the fact in the sense of standard CLIPS and its certainty factor In general a FuzzyCLIPS fact
24. 0 0 Grade of membership values constitute a possibility distribution of the term young The table can also be shown graphically see Figure 1 Myoung 10 20 30 40 50 60 70 80 AGE Figure 1 Possibility distribution of young The possibility distribution of a fuzzy concept like somewhat young or very young can be obtained by applying arithmetic operations to the fuzzy set of the basic fuzzy term young where the modifiers somewhat and very are associated with specific mathematical functions For instance the possibility values of each age in the fuzzy set representing the fuzzy concept somewhat young might be calculated by taking the square root of the corresponding possibility values in the fuzzy set of young see Figure 2 These modifiers are often referred to as hedges A more complete description of the hedges supplied with FuzzyCLIPS and how to add user defined hedges are described in Section 5 3 10 ERB 1054 FuzzyCLIPS Version 6 04A 4 1 Fuzziness 1 0 Hsomewhat young 0 0 10 20 30 40 50 60 70 80 AGE Figure 2 Possibility distribution of somewhat young Fuzzy facts may be defined matched as a pattern in a rule and asserted in a manner similar to the ordinary crisp facts employed in standard CLIPS Example 1 deftemplate age definition of fuzzy variable age 0 120 years young 25 1 50 0 old 50 0 65 1 deffacts fuzzy fact age young a fuzzy fact defrule one a rule
25. 0 OO 30 25 20 2159 10 05 O02 COO C230 O OO O O6 O0 OC 0 c Oo 20 00 40 00 60 00 80 00 100 00 base fv Linguistic Value intensify base OOK KKK A A KKK KK KK 0 00 Orchard 20 00 40 00 60 00 80 00 100 00 43 5 Using the FuzzyCLIPS Extensions Fuzzy Value base fv Linguistic Value extremely base 00 ui 595 90 85 80 Wok UTS 70 65 60 x i 55 50 45 40 35 30 lt 29 20 P 15 x 10 x 5 05 x OQ KKK KKK KK KKK KK KK amp 0 00 20 00 40 00 60 00 80 00 100 00 ee Fuzzy Value base fv2Linguistic Value base norm base 00 x 95 90 X x 85 X 80 21D 70 65 60 FLE de 255 50 Eb qus 45 7 40 32 RE qoc 30 dies T Ns 20 als 10 05 OO X Xx A x A 0 00 20 00 40 00 60 00 80 00 100 00 O02 COO 0 00 0 0 0 0 0 0 0 0 0 0 c Oo 44 ERB 1054 FuzzyCLIPS Version 6 04A 5 3 Modifiers Hedges and Linguistic Expressions These predefined modifiers are available for use at all times in
26. 000212458 seconds 77 6 Continuous Systems 6 Continuous Systems This section describes further extensions made to CLIPS to take care of the needs of continuously operating sys tems 6 1 The Run Command Normally CLIPS terminates when the agenda is empty For real time systems or any continuously operating sys tem there is need for a mechanism that allows the inference engine to idle waiting for events to occur In Fuzzy CLIPS the run command is extended to receive any of the following parameters n a positive integer FuzzyCLIPS will run until n rules have executed or until the agenda is empty whichever comes first e g run 10 1 FuzzyCLIPS runs until the agenda is empty e g run 1 2 FuzzyCLIPS runs forever Control C interrupts the execution e g run 2 n a negative integer less than 2 FuzzyCLIPS runs until n rules have executed e g run 10 The halt function can be called at any time to terminate the run 6 2 Runstart and Runstop Functions CLIPS allows users to call external functions that are executed at the end of each cycle of the inference engine i e after each rule firing This is done by calling the AddRunFunction routine of CLIPS to include the function in the list of exec functions In certain cases however it is useful to be able to execute special routines on entry or exit from the run command The runstart and runstop functions of FuzzyCLIPS allow this This could be useful in sit
27. 604A 3 Installation Information general information including much of the above A discussion of bugs or other issues concerning the current version of Fuzzy CLIPS Normally there will be a discussion of what to do to fix the system the source files that have been modified to fix problems reported in the README BUGS file The following is a list of files included for all systems Those marked with an exclamation mark are new files that have been added to CLIPS to support FuzzyCLIPS agenda c bmathfun c classexm c classpsr c constrct c cstrccom c cstrncmp c default c dffctbsc c dffnxbin c dffnxpsr c edbasic c edterm c expressn c extnfunc c factcom c factmch c factrhs c genrcbin c genrcfun c globlcmp c immthpsr c insfile c insmult c iofun c memory c modulemp c msgcom c multifld c objrtbin c objrtgen c precode c prntutil c router c rulecmp c ruledlt c strngfun c symbol c tmpltbsc c tmpltlhs c utility c 4 analysis c bsave c classfun c clsltpsr c constrnt c Cstrcpsr c cstrnops c defins c dffctcmp c dffnxcmp c dfinsbin c edmain c emathfun c exprnbin c factbin c factgen c factmngr c filecom c genrccmp c genrcpsr c globlcom c incrrset c insfun c inspsr c lgcldpnd c miscfun c moduldef c msgfun c multifun c objrtbld c objrtmch c predrfun c reorder c rulebin c rulecom c rulelhs c strngrtr c sysdep c tmpltcmp c tmpltpsr c watch c argacces c Dcfdef c classinf c co
28. Fuzzy Control Loop 86 Abstract FuzzyCLIPS is an extended version of the CLIPS rule based shell for representing and manipulating fuzzy facts and rules In addition to the CLIPS functionality FuzzyCLIPS can deal with exact fuzzy or inexact and com bined reasoning allowing fuzzy and normal terms to be freely mixed in the rules and facts of an expert system The system uses two basic inexact concepts fuzziness and uncertainty R sum FuzzyCLIPS est une version am lior e du syst me expert vide base de r gles CLIPS utilis pour la repr senta tion et la manipulation de faits et de r gles flous En plus de pouvoir executer les fonctions de CLIPS FuzzyCLIPS peut traiter le raisonnement exact le raisonnement flou ou inexact et le raisonnement mixte permettant aux termes flous et ordinaires d tre librement int gr s aux r gles et aux faits d un syst me expert Le syst me utilise deux concepts de base inexacts le flou et l incertitude 1 Compatible with CLIPS version 6 04 2 CLIPS was developed by the Artificial Intelligence Section Lyndon B Johnson Space Center NASA and is available from COSMIC The University of Georgia 382 Broad Street Athens GA 30602 USA 3 Compatible avec la version 6 04 de CLIPS 4 CLIPS a t mis au point par la Artificial Intelligence Section Lyndon B Johnson Space Center NASA et est offert par COSMIC The University of Georgia 382 Broad Street Athens GA 30602 USA 1 Introd
29. FuzzyCLIPS Version 6 04A User s Guide Integrated Reasoning Institute for Information Technology National Research Council Canada R A Orchard October 1998 Copyright 1995 National Research Council Canada Permission is granted to reproduce all or part of this document provided that the source of such material is fully acknowledged Abstract R sum V V 1 Introduction 1 2 Licence for NRC Software 2 2 1 2 2 2 3 24 2 5 Title and Conditions 2 Record of Use 2 Value of the Software 2 Warranty 2 Commercial Uses 2 3 Installation Information 3 3 1 3 2 3 3 Accessing FuzzyCLIPS 3 UNIX Version Sun 6 IBM PC Version 7 4 Fuzzy Expert Systems 9 4 1 4 2 4 3 44 Fuzziness 9 Uncertainty 12 Inference Techniques 14 4 3 1 Simple Rules 14 4 3 2 Complex Rules 21 4 3 3 Global Contribution 23 4 3 4 Threshold Certainty Factors 24 4 3 5 Certainty Factors in Assert Statements 26 Defuzzification 27 44 1 Centre of Gravity Algorithm 27 4 4 2 Mean of Maxima Algorithm 28 5 Using the FuzzyCLIPS Extensions 30 5 1 5 2 5 3 5 4 2 9 5 6 ST 5 8 5 9 Orchard Defining Fuzzy Variables in Deftemplate Constructs 30 5 1 1 Primary Terms 30 Standard Deftemplate Definitions with Fuzzy Slots fields 37 Modifiers Hedges and Linguistic Expressions 38 5 3 1 Predefined Modifiers 38 5 3 2 User Defined Modifiers 45 5 3 3 Linguistic Expressions 48 Using Fuzzy Variables in LHS Patterns 49 Using Fuzz
30. S C CO CO 23 9 OC OO CO OD CO CO C 62 Fuzzy Value O02 COO C230 O OO O O6 O0 OC 0 c Oo 40 OO X kx A A A KK base fv Linguistic Value 5 Using the FuzzyCLIPS Extensions not base 0 00 20 00 40 00 00 95 90 85 80 T9 70 265 60 70D 50 45 x 40 OO is 30 25 i 20 2159 10 a 05 OQ X xxx A A x KK KKK base fv Linguistic Value 80 00 100 00 very base 0 00 20 00 40 00 80 00 100 00 ERB 1054 FuzzyCLIPS Version 6 04A 5 3 Modifiers Hedges and Linguistic Expressions Fuzzy Value base fv Linguistic Value more or less base 00 595 90 85 80 UTS 70 65 60 55 50 45 40 35 30 lt 29 20 15 10 05 OQ x xxx ox A A x CO QC 0 0 OO O0 O0 CO QC 0 O O Q O OQ O H 0 00 20 00 40 00 60 00 80 00 100 00 Fuzzy Value base fv Linguistic Value somewhat base 00 95 90 85 80 T9 70 265 60 70D 50 45 40 OO 30 25 20 2159 10 05 0OO j eaa DER am IEE se I m E o SE o e gt BE D E E E e E ar E e DE e E e F D E O E o E a
31. S 79 7 1 7 2 7 3 74 Modifying and Duplicating Facts 79 Load Save Bload Bsave Load facts Save facts 79 Constructs to c 79 CreateFact GetFactSlot PutFactSlot 79 8 _Limitations and Future Work 80 8 1 80 9 Acknowledgments 83 10 References 84 Appendix A Shower Example 85 A 1 A 2 A 3 A 4 A 5 Shower Model 85 Shower Model Equations 85 Shower Control Objectives 85 Fuzzy Control Loop 86 Text Based Version No Graphical Interface shwrNOUI cIp 87 ERB 1054 FuzzyCLIPS Version 6 04A List of Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 Figure 17 Figure 18 Figure 19 Figure 20 Figures Possibility distribution of young 10 Possibility distribution of somewhat young 11 Primary terms of alinguistic variable 12 Matching of fuzzy facts 16 Fact and antecedent fuzzy sets 17 N F IF 18 S N F IF 0 5 P F IF 7 18 Compositional rule of inference max min 20 Compositional rule of inference max prod 20 Compositional rule for multiple antecedents 22 Union of fuzzy sets global contribution 23 Example of COG defuzzification 28 Examples of MOM defuzzification 29 MOM example Ambiguity 29 Fuzzy Set of group few 32 Standard fuzzy set functions 35 Approximation of standard functions 36 Modifier interpolation method Yexpand 47 Shower 86
32. actor of a rule may be declared in a manner similar to declaring the rule salience 1 Moment defuzzify may be undefined and will return by default the midpoint of the universe of dis course or when undefined it will return the value set with the set defuzzification error value command see section 5 9 14 2 Note that the certainty factor may be a constant or an expression as is true of the salience value Orchard 55 5 Using the FuzzyCLIPS Extensions defrule some rule declare CF lt certainty factor gt The lt certainty factor gt is a number in the range 0 to 1 Example 34 deffacts initial facts factl CF 0 8 fact with crisp CF of 0 8 defrule some other rule declare CF 0 7 a rule with CF of 0 7 fact1 printout t Hello 5 9 FuzzyCLIPS Commands and Functions A number of commands supplied with CLIPS can be used to look at fuzzy facts and templates just as one looks at standard facts see commands facts ppdeftemplate list deftemplates undeftemplate ppdeffacts list deffacts und effacts The following commands or functions add capability to access components of fuzzy facts control thresh olds for rule firings set precision for fuzzy set display set the fuzzy inference type set a threshold for fuzzy pattern matching create and manipulate fuzzy values etc 5 9 1 Accessing the Universe of Discourse get u get u from get u to get u units Command get u Syntax get u fact var
33. ainty of facts and rules that were applied Expert systems should also be able to cope with unreliable and incomplete information and with different expert opinions Many of today s commercial expert system building tools or shells use different approaches such as certainty factors 3 and Bayesian 4 and Dempster Shafer s 5 models to handle uncertainty in the knowledge or data but they can not cope with fuzzy data which constitute a very significant part of a natural language Several systems such as Cadiag 2 6 Fault 7 FLOPS 8 FRIL 9 SYSTEMZ II 10 and FLISP 11 support some fuzzy reasoning but they are purposely built from high level languages for a specific domain of application Following the main idea of CLIPS which is to develop an expert system tool written in and fully integrated with the C language for high portability low cost and easy integration with external systems this work was undertaken to extend CLIPS for representing and manipulating fuzzy facts and rules Fuzziness and uncertainty are the two distinct inexact concepts employed in the system The following sections will discuss the general theory of both fuzziness and uncertainty their implications on rule evaluation in Fuzzy CLIPS and algorithms implemented for extracting exact values from fuzzy facts 4 1 Fuzziness Fuzziness occurs when the boundary of a piece of information is not clear cut For example concepts such as young tall good or high are
34. alculated certainty factor for a rule is CF min CF CP where CF is the certainty factor for the rule and CF are the certainty factors for the facts that matched the n pat terns on the lefthand side of the rule Example 7 defrule below threshold rule declare CF 0 5 rule certainty factor of 0 5 fuzzy fact antecedent fact fuzzy antecedent gt assert crisp fact cl crisp consequent assert another fuzzy fact c2 fuzzy consequent Suppose the following fact has been asserted fuzzy fact fact list fact CF 0 6 The calculated certainty factor for the rule is CF 0 5 0 6 0 3 The rule will fire only if the threshold certainty factor is less than or equal to 0 3 at the time the rule is selected to fire The certainty factor for another fuzzy fact c2 the fuzzy conse quent in the previous rule is 24 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques CF 0 5 0 6 0 3 from equation 2 as for a simple FUZZY FUZZY rule However the certainty factor for crisp fact cl is CF 0 5 0 6 S where S is the measure of similarity as for a simple FUZZY_CRISP rule Suppose that S 0 8 Then the following conclusions are reached on the RHS assert crisp fact cl calculated CF 0 24 assert another fuzzy fact c2 calculated CF 0 3 Combining rule certainty factors fact certainty factors multiple patterns on the lefthand side of a rule and multiple assertions on the ri
35. arch Council of Canada called NRC whose address for communi cations with respect to this software is Integrated Reasoning Institute for Information Technology National Research Council Canada Ottawa Ontario Canada K1A OR6 Electronic mail fzclips ai iit nrc ca 2 1 Title and Conditions NRC provides a fully paid up and nonexclusive licence to the software package with the following conditions 1 The software will be used for educational and research purposes only The licence does not include the right to sublicense the software or to make it available for independent use by third parties outside the recipient organization 3 Copies of the software may be made for use within the recipient organization however copyright remains with NRC 4 All publications arising from the use of the software shall duly acknowledge such use in accordance with nor mal practices followed in scientific research publications 5 The software is provided in its current state and NRC assumes no obligation to provide services for example maintenance or updates 6 Allusers are requested to provide their name the name of their organization and a mailing or e mail address so that we may track the use of the software as well as provide information to users as updates and enhance ments are made 2 2 Record of Use Users are requested to inform NRC of any corrections changes or extensions to the software NRC would also appreciate being informed of n
36. bed in the CLIPS Reference Manual It may be the integer value of a fact number i e the index of the fact on the fact list It may also be a lt fuzzy value gt that can be obtained among other ways by matching in the pattern of a fuzzy deftemplate fact or a FUZZY VALUE slot 54 ERB 1054 FuzzyCLIPS Version 6 04A 5 8 Certainty Factors of Rules These functions return a floating point number which is the result of performing the defuzzification Example 33 Suppose that fact 1 a fuzzy deftemplate fact on the fact list is temperature warm and that the COG method returns a value of 28 while the MOM method returns a value of 32 5 When the following defuzzification command is issued at the CLIPS prompt level it will return the value 28 0 and display this value at the CLIPS prompt level moment defuzzify 1 When either of the following rules are executed it will print Tem perature is 32 5 defrule defuzzification 1 f temperature used to assure match of the temperature fuzzy fact gt bind t maximum defuzzify f get the value printout t Temperature is t crlf print 32 5 defrule defuzzification 2 temperature fv fv used to hold the fuzzy value of the matching fuzzy fact gt printout t Temperature is maximum defuzzify fv crlf 5 8 Certainty Factors of Rules This section will discuss the syntax for declaring the certainty factor of rules The certainty f
37. bility interval sets Fuzzy Sets and Systems 22 215 227 1987 J F Baldwin Evidential support logic programming Fuzzy Sets and Systems 24 1 26 1987 K S Leung W S F Wong and W Lam Application of a novel fuzzy expert system shell Expert Systems 6 1 2 10 1989 Z A Sosnowski FLISP a language for processing fuzzy data Fuzzy Sets and Systems 37 23 32 1990 Earl Cox The Fuzzy Systems Handbook AP Professional 1995 M Cayrol H Farency and H Prade Fuzzy pattern matching Kybernetes 11 103 106 1982 L A Zadeh Fuzzy sets Information and Control 8 338 383 1965 M Mizumoto S Fukami and K Tanaka Some Methods of Fuzzy Reasoning In Advances in Fuzzy Set The ory and Applications M M Gupta R K Ragade and R R Yager eds North Holland Amsterdam 1979 pp 117 136 L A Zadeh The Concept of a Linguistic Variable and its Application to Approximate Reasoning New York 1973 Tzi cker Chiueh Optimization of fuzzy logic inference architecture Computer May 67 71 1992 T Whalen and B Schott Issues in fuzzy production systems International Journal of Man Machine Studies 19 57 1983 A Kaufmann and M M Gupta Fuzzy Mathematical Models in Engineering and Management Science North Holland 1988 Z A Sosnowski A Linguistic Variable in FLISP Programming Language The Second Joint IFS A EC and EURO WG Workshop Progress in Fuzzy Sets in Europe Vienna Austria April 6 8 1988 pp 71 74 A Kaufman a
38. d Johns_age are fuzzy variables zero and young are fuzzy terms more_or_less is a fuzzy term modifier and 0 9 and 0 8 are certainty factors associated with a fact and a rule respec tively Orchard 13 4 Fuzzy Expert Systems 4 3 Inference Techniques Rule evaluation depends on a number of different factors such as whether or not fuzzy variables are found in the antecedent or consequent part of a rule whether a rule contains multiple antecedents or consequents whether a fuzzy fact being asserted has the same fuzzy variable as an already existing fuzzy fact global contribution and so on In this section the algorithms for evaluating the certainty factors and fuzzy objects of rules will be discussed 4 3 1 Simple Rules Consider the simple rule of form if A then C CF A CF where A is the antecedent of the rule A is the matching fact in the fact database C is the consequent of the rule C is the actual consequent calculated CF is the certainty factor of the rule CF is the certainty factor of the fact CF is the certainty factor of the conclusion Three types of simple rules are defined CRISP FUZZY CRISP and FUZZY FUZZY If the antecedent of the rule does not contain a fuzzy object then the type of rule is CRISP regardless of whether or not a consequent con tains a fuzzy fact If only the antecedent contains a fuzzy fact then the type of rule is FUZZY CRISP If both ante cedent and consequent contain fuzzy
39. d function representation 30 T threshold 62 threshold certainty factor 24 U unary operator 48 uncertainty 12 13 unit of measurement 30 universe of discourse 9 30 31 V very 39 40 W Warranty 2 World Wide Web 3 WWW 3 Z Z function 34 iv Index
40. e in floating point format Example 36 7 Deffunction fuzzify Inputs fztemplate name of a fuzzy deftemplate L5 value float value to be fuzzified Fe delta precision of the value Asserts a fuzzy fact for the fuzzy deftemplate The fuzzy set is a triangular shape centered on the value provided with zero 7 possibility at value tdelta and value delta Note that it Checks bounds of the universe of discourse to generate a fuzzy set that does not have values outside of the universe range Orchard 57 5 Using the FuzzyCLIPS Extensions deffunction fuzzify fztemplate value delta bind low get u from fztemplate bind hi get u to fztemplate if lt value low then assert string format nil s g 1 0 g 0 0 fztemplate low delta else if gt value hi then assert string format nil s g 0 0 g 1 0 fztemplate hi delta hi else assert string format nil s g 0 0 g 1 0 g 0 0 fztemplate max low value delta value min hi value delta As an example the following uses the fuzzify function deftemplate temp 0 100 Degrees F warm 30 O 60 1 90 0 defrule test temp warm gt bind x assert dummy printout Certainty Factor get cf x crlf retract x Asserting a fuzzified fact with fuzzify temp 50 0 001 and firing the rule test will result i
41. e retracted then perhaps the effect of the assertion temp low should be undone leaving the fact as temp medium This is difficult to do without retaining a lot of extra information to assist in removing the effect of that assertion However it would be possible to do this in another way Instead of applying the effects of global contribution as fuzzy facts are asserted it could be delayed until required That is when the two rules fire two facts are asserted temp low with logical dependence on fact x temp medium with logical dependence on fact y Orchard 81 8 Limitations and Future Work This is similar to standard clips facts being asserted with the same template name but different content in the slots If the fact x is retracted then the fuzzy fact temp low is retracted but the fact temp medium would still remain A function such as combine evidence temp could then be executed to create a single fact from all of the facts with the template temp It would replace all of these facts with a single one and would need to deal with the dependencies of these facts in some way Or rather than having such a function and actually doing any combination of the facts into a single fact it could be that the defuzzification function s do this combining of evidence internally and produce a result that reflects this We could in this case provide two types of functions for defuzzification one that operates on individual fuzzy facts no c
42. efined by the fol lowing formula U x max u a x Hp X forxe U Orchard 23 4 Fuzzy Expert Systems where CF is the combined uncertainty CF is the uncertainty of the existing fact CF is the uncertainty of the asserted fact As an example of the importance of the global contribution to a fuzzy fact consider the implementation of a fuzzy logic controller In this case the user has to ensure the firing of all rules that contribute to the control action to be performed before any other rule usually defuzzification fires This can be done by attaching a suitable salience to the rules or by separating the rules that all contribute to the same control action into a separate MODULE As an example see Appendix A and also see the example FuzzyCLIPS programs fzCmplr clp and fzCmpmod clp which use salience and MODULES respectively to ensure all fuzzy rules that are related fire together 4 3 4 Threshold Certainty Factors In FuzzyCLIPS it is possible to set a threshold certainty factor value such that no rule will be fired unless the rule has a calculated certainty factor value greater than or equal to the threshold value see also 19 This feature may be useful in preventing a chain of rules with very low certainty and little logical contribution from firing and thus speed up the run time The default is to have no threshold certainty factor set i e a threshold of 0 0 and for rules to be fired as usual see also Section 5 9 4 The c
43. egment was from 10 0 to 20 1 the squaring operation of the very modifier would just return these same two points since 0 2 0 and 1 2 1 This would not reflect the shape properly In essence we try to keep a compact representation of the fuzzy set when we can but expand to more points when necessary Figure 18 demonstrates the effect of the Yexpand operation on a straight line segment 1 0 mem group few group very few 0 0 Figure 18 Modifier interpolation method Yexpand If further assistance is required please contact NRC by e mail Orchard 47 5 Using the FuzzyCLIPS Extensions 5 3 3 Linguistic Expressions The use of fuzzy primary terms and modifiers together with the binary operators and and or allow us to express the problem solutions in a more natural way These expressions are called linguistic expressions Expressions such as temperature very hot or very cold height below tall and above short are examples of expressions that could be used to describe fuzzy variable The BNF that describes formally the syntax of such expressions is shown below lt LExpr gt n lt LTerm gt lt LExpr gt OR lt LTerm gt lt LTerm gt lt modExpr gt lt LTerm gt AND lt modExpr gt lt modExpr gt MODIFIER lt modExpr gt element element PRIMARY TERM lt LExpr gt where MODIFIER is a valid modifier not very etc PRIMARY TERM is a term defined in a fuzzy deftemplate
44. eory 9 fuzzy slot 37 38 fuzzy term 9 10 30 fuzzy term set 11 fuzzy variable 30 37 Fuzzy Variables assert statements 52 FUZZY CRISP 14 15 FUZZY CRISPrule 16 FUZZY CRISP Simple Rule 15 FUZZY FUZZY 14 FuzzyCLIPS fact 12 fuzzy intersection 68 fuzzy modify 70 fuzzy slot description 49 fuzzy union 67 fuzzyvaluep 66 G get alpha value 66 get cf 61 get CF evaluation 62 get fs 59 get fs length 59 get fs lv 60 get fs value 61 get fs x 59 get fs y 59 get fuzzy display precision 64 get fuzzy inference type 64 get fuzzy slot 71 get threshold 62 getu 56 get u from 56 get u to 56 get u units 56 global contribution 14 grade of membership 9 10 H hedge 10 38 I intensify 39 43 L Licence for NRC Software 2 linguistic expression 30 48 linguistic variable 11 linguistic expr 49 M maximum defuzzify 54 Mean of maxima algorithm 28 membership function 9 modifier 10 38 predefined 38 user defined 45 MOM example 29 moment defuzzify 54 76 iii more or less 39 41 N necessity 16 18 norm 39 44 not 39 40 P PI function 34 plot fuzzy value 72 76 plus 39 possibility 16 Possibility distribution 10 precedence 48 predefined modifiers 38 45 primary terms 11 30 S S function 34 set alpha value 64 set CF evaluation 62 set fuzzy display precision 63 set fuzzy inference type 64 similarity 16 18 simplerule 14 singleton 31 singleton representation 30 36 slightly 39 42 somewhat 39 41 standar
45. equal to this threshold The default alpha value is 0 0 When the alpha value is 0 0 the maximum of the intersection set must be greater than 0 0 Note that a clear does not reset the alpha value to 0 0 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 42 deftemplate temp 0 100 C low 10 1 50 0 ok 20 0 50 1 80 0 high 50 0 90 1 defrule test alpha temp low gt printout t Rule fired crlf set alpha value 0 0 assert temp pi 0 30 run rule should fire with alpha 0 0 Rule fired retract set alpha value 0 5 assert temp pi 0 30 run rule should fire with alpha 0 5 Rule fired retract set alpha value 0 55 assert temp pi 0 30 run rule should NOT fire with alpha 0 55 77 no output here match was not successful Orchard 65 5 9 9 5 Using the FuzzyCLIPS Extensions Command get alpha value Syntax get alpha value Purpose Returns a floating point value which is the current alpha value Fuzzy Value Predicate Function fuzzvaluep Command fuzzyvaluep Syntax fuzzyvaluep lt arg gt Purpose This function returns TRUE if the argument is of type FUZZY VALUE otherwise it will return FALSE Example 43 fuzzyvaluep 45 6 FALSE fuzzyvaluep string FALSE fuzzyvaluep create fuzzy value temp cold TRUE defrule check fuzzyvaluep temp fv amp cold gt
46. er example load shwrNOUI clp from fuzzy examples directory Run an example reset and run The program will ask for the values of parameters for temperature pres sure and valve positions It stops when it reaches a flow between 11 and 13 L min and water temperature between 34 and 38 C The values of certain parameters will be printed after each set of fuzzy rules and defuzzification has taken place 4 You will be prompted to enter further values or to quit A 5 2 Acknowledgment The shower example was suggested by Robert Spring of the Noranda Technology Centre Orchard 87 88 10 References ERB 1054 FuzzyCLiPS Version 6 04A Index Symbols 20 in linguistic expressions 48 Gn linguistic expressions 48 A above 39 42 add fuzzy modifier 45 alpha value 15 antecedent 14 assert string 53 B below 39 43 C center of gravity 27 Centre of gravity algorithm 27 certainty factor 12 13 54 55 rules 55 certainty factor expression 54 CF 12 CLIPS 9 COG defuzzification 27 consequent 14 create fuzzy value 66 crisp facts 11 CRISP_ 14 D deffacts construct 51 deftemplate 37 defuzzification 27 55 COG 54 MOM 54 degree of uncertainty 12 description of fuzzy set 30 E extremely 39 44 F ftp 3 fuzziness 9 13 fuzzy deftemplate 15 37 fuzzy deftemplate fact 37 fuzzy deftemplate facts 15 Fuzzy Expert Systems 9 fuzzy fact 37 fuzzy facts 15 fuzzy knowledge 9 fuzzy LHS pattern 49 fuzzy set 9 fuzzy setth
47. ers and flexibility to add more complicated modifiers at the C code level Orchard 45 5 Using the FuzzyCLIPS Extensions Example 23 add fuzzy modifier my somewhat sqrt deffunction most extremely fcn x x 5 add fuzzy modifier most extremely most extremely fcn deftemplate temp 0 100 C low 10 1 50 0 high 50 0 90 1 sort of high my somewhat high incredibly low most extremely low In Example 23 sqrt is a system defined function that returns the square root of a number With this definition the modifier my somewhat will act exactly like the somewhat modifier supplied with the system The function most extremely fcn is a user defined deffunction that will handle the work of the modifier most extremely With this def inition its behavior will be similar to that of the system supplied modifier extremely The functionality of the mod ifiers defined this way is somewhat limited for example it would not be possible to define the above below or slightly modifiers this way It is also possible to remove any modifiers added this way with the function remove fuzzy modifier modname Note that only modifiers added with the add fuzzy modifier function can be removed The second method of adding modifiers requires that the source code for FuzzyCLIPS be modified and the system be recreated with these new modifiers being available as system defined modifiers This will allow for more com plex modifiers to be
48. f the temperature measurement is get cf f Then the above rule will print The certainty of the temperature measurement is 0 7 5 9 4 Accessing the Threshold Certainty Factor threshold get threshold Command set threshold Syntax set threshold lt NUMBER gt Purpose Sets threshold certainty factor to the value of NUMBER NUMBER must evaluate to a floating value between 0 0 and 1 0 By default the threshold value is 0 0 Command get threshold Syntax get threshold Purpose Returns the floating point value of the threshold certainty factor if threshold capability is ON If it is OFF then a value of 0 0 is returned 5 9 5 Setting the Rule CF Evaluation Behaviour set CF evaluation set CF evaluation Command set CF evaluation Syntax set CF evaluation lt value gt Purpose Sets the behavior for evaluating the CF of rules to value Value must be one of when defined default or when activated This is similar to the set salience evaluation function of CLIPS The value when defined forces the certainty factor of the rule to be evaluated at the time of rule definition compilation The value when acti vated forces the certainty factor of the rule to be defined at the time of rule definition and when the rule is activated added to the agenda Command get CF evaluation Syntax get CF evaluation Purpose Returns the current setting of the behavior for evaluating the CF of rules Return va
49. facts then the type of rule is FUZZY FUZZY 4 3 1 1 CRISP Simple Rule If the type of rule is CRISP then A must be equal to A in order for this rule to fire This is a normal CLIPS rule actually A would be a pattern and A would match the pattern specification but for simplicity we will not deal with patterns In that case the conclusion C is equal to C and CF CF CF 2 14 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques Example 4 Given a rule defrule crisp simple rule declare CF 0 7 crisp rule certainty factor of 0 7 light switch off crisp antecedent gt assert illumination_level dark fuzzy consequent end of rule definition and given that the fact light_switch off CF 0 8 has been asserted Then the following fact will be asserted into the fact database due to the firing of the crisp simple rule illumination_level dark CF 0 56 where the certainty factor of the conclusion has been calculated as follows CF 0 7 0 8 4 3 1 2 FUZZY_CRISP Simple Rule If the type of rule is FUZZY_CRISP then A must be a fuzzy fact with the same fuzzy variable as specified in A for a match to occur and the rule to be placed on the agenda In addition while values of the fuzzy variables A and A represented by the fuzzy sets F and F do not have to be equal they must overlap For example the fuzzy facts temperature high and pressure high do not match because t
50. files will be stored CLIPSCMD Directory with project files for Borland C 4 5 and FuzzyCLIPS executable clipscmd exe FuzzyCLIPS command line version runs under windows clipscmd ide Borland project file clipscmd mak makefile for windows command line version objfiles directory where object files will be stored FuzzyCLIPS has been compiled using Borland C 4 5 an ANSI compiler and tested on a PC compatible system running Windows NT It has been compiled for distribution as a 16 bit system that will run on windows 3 x systems If a 32 bit version is required then the user will have to arrange to create it using the compiler of his choice 8 ERB 1054 FuzzyCLIPS Version 6 04A 4 1 Fuzziness 4 Fuzzy Expert Systems In the real world there exists much fuzzy knowledge i e knowledge that is vague imprecise uncertain ambigu ous inexact or probabilistic in nature Human thinking and reasoning frequently involve fuzzy information possi bly originating from inherently inexact human concepts and matching of similar rather then identical experiences In systems based upon classical set theory and two valued logic it is very difficult to answer some questions because they do not have completely true answers Humans however can give satisfactory answers which are probably true Expert systems should not only give such answers but also describe their reality level This level should be calculated using imprecision and the uncert
51. fuzzy There is no single quantitative value which defines the term young For some people age 25 is young and for others age 35 is young In fact the concept young has no clean boundary Age 1 is definitely young and age 100 is definitely not young however age 35 has some possibility of being young and usu ally depends on the context in which it is being considered The representation of this kind of information in Fuzz yCLIPS is based on the concept of fuzzy set theory 14 Unlike classical set theory where one deals with objects whose membership to a set can be clearly described in fuzzy set theory membership of an element to a set can be partial i e an element belongs to a set with a certain grade possibility of membership More formally a fuzzy set A in a universe of discourse U is characterized by a membership function Ua U gt 0 1 1 which associates with each element x of U a number 1 x in the interval 0 1 which represents the grade of membership of x in the fuzzy set A For example the fuzzy term young might be defined by the fuzzy set in Table 1 1 For an excellent introduction to the concept of fuzziness see 12 Earl Cox s Fuzzy Systems Hand book Orchard 9 4 Fuzzy Expert Systems Table 1 Fuzzy Term young Age Grade of Membership 25 1 0 30 0 8 35 0 6 40 0 4 45 0 2 50 0 0 Regarding equation 1 one can write Hyoung 25 1 Hyoung 30 0 8 hyous 5
52. ghthand side of a rule can lead to a complicated determination of threshold and certainty factors for the asserted facts Example 8 defrule complex declare CF 0 9 crisp1 fuzzyl very few assert crisp2 fuzzy2 hot with asserted facts crispl CF 0 8 fuzzyl few CF 0 7 The calculated certainty factor for the rule is 0 9 min 0 8 0 7 0 63 Therefore the rule will fire if the threshold value is less than or equal to 0 63 and the certainty factors of the two asserted facts will be assuming the similarity between fuzzyl very few and fuzzyl few is 0 6 0 378 0 63 CF of crisp2 0 9 min 0 8 0 7 0 6 CF of fuzzyl few 0 9 min 0 8 0 7 Note that the calculated certainty factor for a rule is evaluated when the rule is selected to fire and NOT when it is added to the agenda This is because the certainty factors for the facts that match the patterns of the rule can change due to global contribution while the rule is on the agenda Orchard 25 4 Fuzzy Expert Systems 4 3 5 Certainty Factors in Assert Statements When a fact is asserted in FuzzyCLIPS its certainty factor may be specified It is thus possible to assert a fact on the RHS of a rule with a specific certainty factor Example 9 assert some consequent CF 0 8 asserting fact with CF 0 8 Note that a certainty factor will also be calculated according to the nature of the rule having multiple antecedents FUZZY FUZZY CRISP o
53. he fuzzy variables temperature and pressure are not the same However given the fuzzy facts pressure low pressure medium and pressure high as illus trated in Figure 4 clearly pressure low and pressure medium overlap and thus match while pressure low and pressure high do not match 1 In this and the next sections we deal only with fuzzy facts whose relation name is the name of a fuzzy deftemplate However in general a fact may contain fuzzy slots in a standard deftemplate fact We will refer to these as fuzzy deftemplate facts and fuzzy facts respectively although a fuzzy deftemplate fact is also a fuzzy fact Details are described later 2 There is some control over this via a FuzzyCLIPS feature called the alpha value This is a number between 0 and that is used to specify the minimum overlap required to declare a match Normally this is set to 0 0 so that any overlap is a match Orchard 15 4 Fuzzy Expert Systems Primary Terms of pressure i pressure low PT pressure medium pressure high pressure Figure 4 Matching of fuzzy facts For a FUZZY CRISP rule the conclusion C is equal to C and CF CF CFe S where S is a measure of similarity between the fuzzy sets Fu determined by the fuzzy pattern A and F of the matching fact A The measure of similarity is based upon the measure of possibility P and the measure of neces sity N It is calculated according to the fo
54. hip u4 x of x in fuzzy set A is a positive number and the pair a x x will be called a sin gleton often these pairs are represented by uA x x or u x x for short A fuzzy set A in a universe of discourse U can be described as follows A i M x AX xeU where the integration symbol denotes the union of singletons If a universe of discourse U is a finite set then A is expressed as follows n A Y Mx x Wy Xy U X HX i 1 In FuzzyCLIPS we consider the universe of discourse to be a range of the real number line and do not deal with finite sets for U A singleton will be represented here as a pair x u x A fuzzy set A will be represented as a list of singletons lt singletons gt x U1 X9 Ho Xn Un where Xi Xi l fori 1 2 n 1 x is an element from U H is a number denoting the grade of membership of x in the fuzzy set A As mentioned in Section 4 1 a fuzzy set is represented by an ordered set of points joined by straight line segments The grade of membership of an x value not listed in a list of singletons will be calculated on the basis of interpola tion according to the following formula for points that do not have multiple membership values in these cases the membership value is defined to be the maximum of all values at that same x value HG HG xxn hoi Moy u x W x x xj X SxS i 1 i l x 1 HG H x lt 2 Orchard 31 5 Using the FuzzyCLIPS Ex
55. ibed in the CLIPS reference manual Orchard 53 5 Using the FuzzyCLIPS Extensions Example 30 assert string group z 4 8 assert string group s 4 5 3 assert string person name bob ht medium The certainty factor is a constant numeric value from 0 0 to 1 0 Example 31 assert somefact CF 0 8 with CF of 0 8 assert group few CF 0 2 0 4 with CF of 0 6 Note that the certainty factor will be calculated as described in Section 4 3 5 A certainty factor expression has the same syntax as a certainty factor except that the constant numeric value may be replaced by a variable or function which returns a numeric value between 0 0 and 1 0 Example 32 defrule assert rule 4 illustrates various CF assertions certainty factor cf where cf is between 0 and 1 f lt somefact gt assert factl CF cf assert fact3 CF 0 8 cf assert fact5 CF get cf f get cf is a function discussed in Section 5 9 5 7 Defuzzification A crisp value may be extracted from a fuzzy set using either the centre of gravity or mean of maxima techniques developed in Section 4 4 The syntax is as follows moment defuzzify lt fact var gt integer lt fuzzy value gt COG algorithm maximum defuzzify lt fact var gt integer lt fuzzy value gt MOM algorithm The argument may be fact variable lt fact var gt which normally is bound on the LHS of a rule as descri
56. in essence have a single slot that holds the fuzzy value described by the linguistic expression or fuzzy set description It is also possible to supplement stan dard CLIPS deftemplate facts by having one or more of the slots be a fuzzy value slot In these cases the slot is associated with a fuzzy deftemplate description so that the appropriate universe of discourse and terms are known These facts with fuzzy slots are known as fuzzy facts A fuzzy slot has the form 1 In fact fuzzy deftemplate facts are also fuzzy facts Internally a fuzzy fact is stored exactly as if it were declared as deftemplate tnamel slot GenericFuzzySlot type FUZZY VALUE tname2 where tname2 is the name of a fuzzy deftemplate Orchard 37 5 Using the FuzzyCLIPS Extensions fuzzy slot gt slot lt slotname gt type FUZZY VALUE lt fuzzy deftemplate name gt where lt slotname gt is the name of the slot and lt fuzzy deftemplate name gt is the name of a previously defined fuzzy deftemplate Note that no other options are allowed in the slot specification For example the slot cannot have multiple possible types like INTEGER and FUZZY VALUE and the options that determine other constraints such default values or cardinality are not allowed Fuzzy slots can only hold fuzzy values and must have a value Example 21 7 assume that the fuzzy deftemplates fz height and fz weight have already been defined deftemplate person slot name type SYMBOL slo
57. ingle discrete action may be applied so a single point that reflects the best value of the set needs to be selected This process of reducing a fuzzy set to a single point is known as defuzzification There are several possible methods each one of which has advantages and disadvantages A method which has been widely adopted is to take the center of gravity COG or moment of the whole set This has the advantage of producing smoothly varying controller output but it is sometimes criticized as giving insufficient weight to rule consequents that agree and ought to reinforce each other Another method concentrates on the values where the possibility distribution reaches a maximum called the mean of maxima method The mean of maxima MOM algorithm is criticized as producing less smooth controller output but has the advantage of greater speed due to fewer floating point calculations In FuzzyCLIPS the user has the option of choosing either the COG or MOM algorithm when defuzzifying a fuzzy set For details on the functions that perform defuzzification in FuzzyCLIPS see Section 5 7 4 4 1 Centre of Gravity Algorithm The centre of gravity method may be written formally as Goes y QEU fo xe U where x is the recommended defuzzified value and the universe of discourse is U In FuzzyCLIPS a fuzzy set is defined by a set of points that are considered to be connected by straight line seg ments The integral then reduces to a si
58. it is truncated to the nearest integer The x coordinate is returned as a floating point value Command get fs y Syntax Purpose Orchard get fs y lt fact var gt lt i gt or get fs y lt integer gt lt i gt or get fs y lt fuzzy value gt lt i gt Returns the y coordinate of the ith pair in the fuzzy set as a floating point value 59 5 Using the FuzzyCLIPS Extensions Example 37 Suppose the fuzzy fact temperature was fact 2 on the fact list the indicates that the fuzzy set is not expressible using terms and modifiers for that fuzzy variable it may have been defined using a singleton description or modified by the compositional rule of inference Suppose also that it has a fuzzy set consisting of the following three singletons 00 25 1 40 0 Then get fs x 2 1 at the command line would return 25 In a rule one could do the following defrule print last coordinate f lt temperature gt bind n get fs length f bind x get fs x f n 1 bind y get fs y f n 1 printout t The last point in the set is x y crlf OR defrule print last coordinate temperature fv gt bind n get fs length fv bind x get fs x fv n 1 bind y get fs y fv n 1 printout t The last point in the set is x y crlf Command get fs lv Syntax get fs lv lt fact var gt or get fs lv lt integer gt or get fs lv lt f
59. l of which method is used fact amp antecedent consequent asserted fuzzy sets fuzzy set fuzzy set temperature warm 999 temp_change little temp change temperature hot asserted Figure 8 Compositional rule of inference max min fact amp antecedent consequent asserted fuzzy sets fuzzy set fuzzy set temperature warm h 555 temp change little temp c ae Tl temperature hot asserte Figure 9 Compositional rule of inference max prod 1 is used to denote an unknown linguistic expression The fuzzy set denoted by the linguistic expres sion temp change little once clipped or scaled is difficult to assign a linguistic expression to 20 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques 4 3 2 Complex Rules 4 3 2 1 Multiple Consequents In CLIPS the consequent part of the rule can only contain multiple patterns C4 C Ch with the implicit and conjunction between them They are treated as multiple rules with a single consequent So the following rule if Antecedents then C and C and and C is equivalent to the following rules if Antecedents then C if Antecedents then Cy if Antecedents then C 4 3 2 2 Multiple Antecedents From the above clearly only the problem of multiple patterns in the antecedent with a single assertion in the con sequent needs to be considered If the consequent assertion is not a fuzzy fact no special treat
60. least one of these is a lt fuzzy slot description gt and a lt fuzzy slot description gt is fuzzy slot name lt linguistic expr gt or fuzzy slot name or fuzzy slot name lt var name gt or fuzzy slot name lt var name gt amp lt linguistic expr gt The lt linguistic expr gt is a fuzzy set specified by a combination of primary terms modifiers and the logical opera tors NOT and OR as described in Section 5 3 3 A fuzzy variable name is the name of any fuzzy deftemplate A Orchard 49 5 Using the FuzzyCLIPS Extensions template name is the name of any non fuzzy deftemplate A fuzzy slot name is the name of a slot declared to have type FUZZY VALUE as described in Section 5 2 The examples below show some of the ways in which fuzzy patterns might appear on the left hand side of rules Example 24 deftemplate group declaration of fuzzy variable group 0 20 members few 3 1 6 0 primary term few many 4 0 6 1 primary term many defrule simple LHS group few a simple fuzzy LHS pattern Example 25 defrule more complex lhs f lt group very few or very many gt printout t We are at the extreme limits of the number of get u units f in our club crlf Example 26 deftemplate height 0 8 feet short Z 3 4 5 medium pi 0 8 5 tall S 5 5 6 deftemplate person slot name slot ht type FUZZY VALUE height 50 ERB 1054 FuzzyCLIPS Version
61. llowing formula 13 S PF Fy if Ng Fy gt 0 5 S NF Fy 0 5 PFa Fy otherwise where PEalFo max min p w up Aw Vue U and NF Fy 1 PFyIF Fo is the complement of F described by the following membership function uo Fe QU V ue U Therefore if the similarity between the fuzzy sets associated with the fuzzy pattern A and the matching fact A is high the certainty factor of the conclusion is very close to CF CF since S will be close to 1 If the fuzzy sets are identical then S will be 1 and the certainty factor of the conclusion will equal CF CFy If the match is poor then this is reflected in a lower certainty factor for the conclusion Note also that if the fuzzy sets do not overlap 1 min is the minimum and max is the maximum so that max min a b would represent the maximum of all the minimums between pairs a and b 16 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques then the similarity measure would be zero and the certainty factor of the conclusion would be zero as well In this case the conclusion should not be asserted and the match would be considered to have failed and the rule would not be placed on the agenda Example 5 defrule simple fuzzy crisp rule declare CF 0 7 rule has a certainty factor of 0 7 fuzzy fact fact2 fuzzy antecedent assert crisp fact fact3 crisp consequent where fuzzy fact facti CF 0 8 is the matching fact in the fact
62. lue is either when defined or when activated similar to the get salience evaluation function 1 For compatibility with previous versions of FuzzyCLIPS threshold is also accepted 62 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions 5 9 6 Controlling the Fuzzy Set Display Precision set fuzzy display precision get fuzzy display preci sion Command set fuzzy display precision Syntax set fuzzy display precision lt integer gt Purpose When fuzzy facts are displayed the fuzzy set values are displayed in floating point format This function allows the number of significant digits displayed after the decimal point to be set The lt integer gt argument is an integer value between 2 and 16 If it is less than 2 it is set to 2 and if itis greater than 16 it is set to 16 The default value is 4 Note that clear will not reset this value to 4 Example 41 set fuzzy display precision 16 facts f 0 speed_error more or less large positive CF 1 00 0 0 0 0 0 0 1 0 0 0 UU H 0 e O O O o o 0 3162277660168379 5477225575051661 6324555320336759 7745966692414834 8944271909999159 0 set fuzzy display precision 2 facts f 0 speed_error 0 0 0 0 0 0 1 Orchard 0 0 0 UU H 0 e O O O o 0 32 0 2 0 45 55 0 35 0 59 63 0 5 0 71 77 0 7 0 84 89 0 9 0 95 0 0 0
63. ment is needed since the conclusion will be the crisp non fuzzy fact However if the consequent assertion is a fuzzy fact the fuzzy value is calculated using the following basic algorithm 18 If logical and is used one has if A and A then C CF Ay CF Ay CFp C CF where A and A are facts crisp or fuzzy that match the antecedents A and A respectively In this case the fuzzy set describing the value of the fuzzy assertion in the conclusion is calculated according to the formula Fe Fo N Fe where denotes the intersection of two fuzzy sets Fi is the result of fuzzy inference for the fact A and the simple rule if A then C Fe is the result of fuzzy inference for the fact A and the simple rule if A then C In Figure 10 we see the results of a rule in which both A and A are fuzzy patterns Note that if both Al and A were crisp non fuzzy facts then the conclusion would just be the fuzzy fact C since we would be dealing with two CRISP FUZZY simple rules If one of the patterns is crisp say A and the other is fuzzy then the conclusion is Fe since the CRISP FUZZY simple rule would conclude C and the FUZZY FUZZY simple rule would con clude F The intersection of these two would just be F 1 A membership function of a fuzzy set C which is the intersection of fuzzy sets A and B is defined by the following formula U x min u a x Up x for x e U Orchard 21 4 Fuzzy Expert Systems Ai A
64. mmline c crstrtgy c cstrnbin c cstrnpsr c developr c dffctdef c dffnxexe c dfinscmp c edmisc c engine c exprnops c factbld c facthsh c factprt c filertr c genrccom c globlbin c globldef c inherpsr c insmngr c insquery c macmain c modulbin c modulpsr c msgpass c objbin c objrtcmp c pattern c predrpsr c reteutil c rulebld c rulecstr c rulepsr c symblbin c textpro c tmpltdef c tmpltrhs c factfun c bload c classcom c classini c conscomp c cstrcbin c cstrnchk c cstrnutl c dffctbin c dffctpsr c dffnxfun c drive c edstruct c evaluatn c exprnpsr c factcmp c factlhs c factrete c generate c genrcexe c globlbsc c globlpsr c inscom c insmoddp c insqypsr c main c modulbsc c modulutl c msgpsr c objemp c objrtfnx c pprint c prdctfun c retract c rulebsc c ruledef c scanner c symblemp c tmpltbin c tmpltfun c tmpltutl c ERB 1054 FuzzyCLIPS Version 6 04A 3 1 Accessing FuzzyCLIPS Dfuzzycom c Dfuzzypsr c agenda h bmathfun h classexm h classpsr h commline h constrnt h cstrccom h cstrncmp h default h dffctbsc h dffnxbin h dffnxpsr h ed h exprnbin h extobj h factcom h factmch h factrhs h genrcbin h genrcfun h globlcmp h immthpsr h insfile h insmult h lgcldpnd h modulbsc h modulutl h msgpsr h objbin h objrtbld h objrtmch h predrfun h reteutil h rulebld h rulecstr h rulepsr h strngfun h symbol h tmpltcmp h tmpltpsr h cmptblty h prdctfun h Dfuzzycom h Dfuzzymod
65. mple summation where xi is the local centre of gravity A is the local area of the shape underneath line segment pi 1 pj and n is the total number of points Orchard 27 4 Fuzzy Expert Systems Example 11 1 0 _ 0 8 a z 0 6 _ n c Es 204 jaa 0 2 1 0 1 6 po 0 0 1 0 2 0 3 0 4p 5 0 6 0 xl x2 x3 x4 2 333 3 917 5 500 6 333 Figure 12 Example of COG defuzzification For each shaded subsection in Figure 12 the area and centre of grav ity is calculated according to the shape identified i e triangle rectangle or trapezoid The centre of gravity of the whole set is then determined im 2 333 1 0 3 917 1 6 5 5 0 6 6 333 0 3 1 0 1 6 0 6 0 3 3 943 4 4 2 Mean of Maxima Algorithm The MOM algorithm returns the x coordinate x of the point at which the maximum membership y value of the set is reached Example 12 Given the fuzzy set illustrated in Figure 12 the MOM result would be 3 0 28 ERB 1054 FuzzyCLIPS Version 6 04A 4 4 Defuzzification If the maximum y value is reached at more than one point then the average of all the x is taken More formally LE J X pio oM ESD j 1 7 where x jare the x coordinates of all the maxima and J is the total number of maxima see Figure 13 Figure 13 Examples of MOM defuzzification Note that an ambiguity occurs when the maximum value occurs along a plateau see Figure 14 rather than ju
66. n h rulecom h rulelhs h shrtinkn h symblemp h tmpltbsc h tmpltlhs h watch h iofun h Dfuzzylv h Dfuzzyutl h 3 Installation Information clips hlp this file may appear in a different directory from those above All of the executable files distributed with FuzzyCLIPS have been created to include fuzzy facts and reasoning certainty factors and runtime extensions see Section Any or all of these three components can be selectively removed from inclusion in the system by modifying the file setup h and recompiling and linking FuzzyCLIPS The following FLAGS in setup h are set to to include the feature and to 0 to exclude the feature FUZZY_DEFTEMPLATES for fuzzy facts and reasoning CERTAINTY_FACTORS for certainty factors EXTENDED RUN OPTIONS for extended runtime options The next two sections describe the file structures and contents of directories for each of the UNIX Sun and PC versions of FuzzyCLIPS 3 2 UNIX Version Sun The main directory FZ__CLIPS 6 04 has all of the files c and h listed above plus the following files and directories makefile x File used to create FZ_XCLIPS Note that for the FZ_XCLIPS version the flag WINDOW_INTERFACE in setup h must be set to 1 makefile File used to create FZ_CLIPS Note that for the FZ_CLIPS version the flag WINDOW_INTERFACE in setup h must be set to 0 FZ_XCLIPS includes the code for X development interface FZ_CLIPS generic NO X development interface The followi
67. n the output Certainty Factor 0 66667 Command get u units Syntax get u units lt fact var gt or get u units lt integer gt or get u units lt fuzzy template name gt or get u units lt fuzzy value gt Returns the units of the universe of discourse in string format If no units have been speci Purpose fied then the empty string is returned 58 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions 5 9 2 Accessing the Fuzzy Set get fs get fs x get fs y get fs length get fs lv get fs value Command get fs Syntax Purpose get fs lt fact var gt or get fs lt integer gt or get fs lt fuzzy value gt Returns the entire fuzzy set in singleton representation in string format Command get fs length Syntax Purpose get fs length lt fact var gt or get fs length lt integer gt or get fs length lt fuzzy value gt Returns the number of pairs in a fuzzy set description as an integer Command get fs x Syntax get fs x lt fact var gt lt i gt or get fs x lt integer gt lt i gt or get fs x lt fuzzy value gt lt i gt where lt i gt is an integer variable or function expression Purpose Returns the x coordinate of the ith pair in the fuzzy set where the pairs are numbered left to right from 0 to n 1 and n is the total number of pairs in the set If the expression lt i gt eval uates to a non integer value then
68. n to CLIPS to allow the formatting of fuzzy values in a format function The specifier F is used Example 49 deftemplate temp 0 100 C cold z 20 50 assert temp cold Fact 0 format t Value is F n get fuzzy slot 0 Value is cold Orchard 71 5 Using the FuzzyCLIPS Extensions 5 9 13 Plotting a Fuzzy Value plot fuzzy value Command plot fuzzy value Syntax Purpose 72 plot fuzzy value lt logicalName gt lt plot chars gt lt low limit gt lt high limit gt lt fuzzy value gt This function is used to plot fuzzy sets The arguments are lt logicalName gt is any open router to direct the output to e g t for the standard output lt plot chars gt specifies the characters to be used in plotting e g or for each fuzzyvalue specified a corresponding character from the string or symbol is used as the plotting symbol if more fuzzyvalues than symbols are specified then the last symbol is used for the remaining plots lt low limit gt is a numeric value that specifies the lowest x value to be displayed in the plot OR if it is not a numeric value then it will default to the low limit of the universe of discourse lt high limit gt is a numeric value that specifies the highest x value to be displayed in the plot OR if it is not a numeric value then it will default to the high limit of the universe of discourse lt fuzzy value gt is one of three things an integer
69. nd M M Gupta Introduction to Fuzzy Arithmetic Theory and Applications Van Nostrand Reinhold 1985 K S Leung and W Lam Fuzzy Concepts in Expert Systems IEEE September 1988 pp 43 56 Giarratano and Riley Expert Systems Principles and Programming PWS KENT Publishing Company 1989 p 270 ERB 1054 FuzzyCLIPS Version 6 04A A 1 Shower Model Appendix A Shower Example The purpose of the shower example is to simulate the flow and temperature of water leaving a shower head as a function of time and to build a fuzzy controller to keep the flow and temperature within some required ranges A 1 Shower Model 1 The volumes of the pipes are zero 2 Water mixes perfectly at point X see Figure 19 3 The water pipe is a perfect thermal insulator 4 There is no heat transfer in the water as it travels from point X to the shower head As a consequence of the above model the flow out of the shower head Fx at any time t is exactly equal to the flow of cold water Fc at time t plus the flow of hot water Fh at time t Any change to a valve position vc vh or to the water pressure Ph Pc is immediately reflected in the flow from the shower head The temperature of the water leaving the shower head Tx at time t is equal to the temperature of water at point X See equations below A 2 Shower Model Equations Tc e 0 35 C Th Tc Th e 0 100 C Tx FcTc FhTh Fx Fx Fe Fh Px 30 kPa atmospheric pressure
70. ng files support the X windows development interface A indicates some minor changes made at NRC to better support the Restart option when quitting CLIPS xmanin c xmenu_file c and to allow Control C to halt execution of a CLIPS program xclipstext c xclips c xmain c xmenu_file c xmenu_wind c xclipstext c xmenu c xmenu_opt c xedit c xmenu_exec c xmenu_watch c xclips h xmain h xmenu wind h xedit h xmenu h xsetup h DOCS directory FrameMaker documentation files PostScript output of documentation FuzzyCLIPS doc FuzzyCLIPSTitle doc FuzzyCLIPSIX doc FuzzyCLIPSTOC doc FuzzyCLIPS book FuzzyCLIPSLOF doc fzdocs ps fzexamples Directory sample of examples in FuzzyCLIPS linlst clp control of linear 1st order system lini stdl clp control of linear 1st order system with delay 6 ERB 1054 FuzzyCLIPS Version 6 04A 3 3 IBM PC Version simpITst clp basic non sensical example fzCmplr clp fuzzy compiler example fzCmpmod clp fuzzy compiler example using MODULES shwrNOUI clp shower example with NO graphical user interface linlst par used with xvgr program to plot results of lin1st clp or linlstdl clp there may also be some dat files that are the outputs for these programs FuzzyCLIPS has been compiled using cc of SparcWorks an ANSI compiler and tested on a Sun Sparc system running Solaris 3 3 IBM PC Version The main directory FZCLP604A SOURCES has all of the files c and h listed above The
71. old create fuzzy value temp hot Fuzzy Value temp Linguistic Value cold hot cold AND hot OO e CEA 95 PE 90 s 85 80 75 70 d 65 60 55 y 50 45 40 24 35 30 25 20 15 10 05 OOOOOOooOooOooOooOooOooOooOooOooOooOooOooOooorprp OO 1 1 1 1 1 1 1 1 1 1 0 00 20 00 40 00 60 00 80 00 100 00 69 5 Using the FuzzyCLIPS Extensions Command fuzzy modify Syntax fuzzy modify lt fuzzy value gt lt modifier gt Purpose Returns a new fuzzy value that is a modification of the fuzzy value argument The modifica tion performed is specified by the modifier argument This modifier can be any active modi fier very slightly etc Example 47 plot fuzzy value nil nil create fuzzy value temp hot fuzzy modify create fuzzy value temp hot extremely Fuzzy Value temp Linguistic Value hot extremely hot 00 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10
72. ombining of evidence and one that operates on fuzzy templates combining evidence of all facts for the template before doing the defuzzification There may be other suggestions and possibilities A third area that needs investigation is the idea of making FUZZ Y VALUES a standard type in CLIPS like inte gers symbols etc The current implementation has proceeded towards this goal and this may be a next logical step This would allow FUZZY VALUES to be stored in objects as well as in facts Considerable effort is still needed to go this extra step and assistance from NASA or others would be appreciated Bug reports and any suggestions for modifications and further extensions are welcome Many perhaps most of the enhancements from 6 02 to 6 04A were a result of feedback from users Let s keep the communication going 82 ERB 1054 FuzzyCLIPS Version 6 04A 9 Acknowledgments 9 Acknowledgments The author would like to acknowledge the contributions of the following people Zenon Sosnowski a visiting researcher from the Technical University of Bialystok in Poland initiated the concept of FuzzyCLIPS and created the first version for CLIPS 4 3 Christina Lam a student from the University of Toronto reworked some of the code and the user guide for a later version of FuzzyCLIPS based on CLIPS 4 3 Jadwiga Sienkowicz a student from Concordia University created some example programs using the current version of FuzzyCLIPS as well as a version tha
73. or get u lt integer gt or get u fuzzy template name or get u lt fuzzy value gt where lt fact var gt is a fact variable normally bound on the LHS of a rule integer is the number of a fact on the fact list constant or expression lt fuzzy template name gt is a symbol that represents the name of a fuzzy deftemplate lt fuzzy value gt is an element of type FUZZY VALUE 56 ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Purpose Returns a string of the form lt from gt to units2 the limits of the universe of dis course and the units if specified If no units have been declared in the deftemplate state ment then the function returns lt from gt to Example 35 get u t t is bound to the temp fuzzy fact get u 2 2 is a fact index get u temp temp is the name of the fuzzy deftemplate defrule test temp fv fv is a fuzzy value gt printout t get u fv Command get u from Syntax get u from lt fact var gt or get u from lt integer gt or get u from lt fuzzy template name gt or get u from lt fuzzy value gt Purpose Returns the lower limit of the universe of discourse in floating point format Command get u to Syntax get u to lt fact var gt or get u to lt integer gt or get u to lt fuzzy template name gt or get u to lt fuzzy value gt Purpose Returns the upper limit of the universe of discours
74. oteworthy uses 2 3 Value of the Software This software is considered to have no market value 2 4 Warranty NRC disclaims any warranties expressed implied or statutory of any kind or nature with respect to the software including without limitation any warranty of fitness for a particular purpose NRC shall not be liable in any event for damages whether direct or indirect special or general consequential or incidental arising from the use of the software 2 5 Commercial Uses Commercial use of FuzzyCLIPS is possible Contact the Integrated Reasoning Group of the Institute for Informa tion Technology at NRC for details 2 ERB 1054 FuzzyCLIPS Version 6 04A 3 1 Accessing FuzzyCLIPS 3 Installation Information FuzzyCLIPS has been successfully compiled and tested on the following machines Sun Sparc workstations using cc compiler of SparcWorks 3 0 IBM PC DOS machines using Borland C 4 5 huge model ONLY 3 1 Accessing FuzzyCLiPS FuzzyCLIPS is available via anonymous ftp from ai iit nrc ca and via the World Wide Web WWW using URL designation http ai iit nrc ca fuzzy fuzzy html After connecting to the system with ftp do the following 1 cd pub fzclips 2 binary binary transfers are required 3 get fzclips tar Z UNIX version compiled for Sun workstation tar d and compressed or get fzclips exe PC version self extracting archive format created with PAK or get fzdocs pdf FuzzyCLIPS documentation
75. ption gt entries at least one of these is a lt fuzzy slot description gt and a lt fuzzy slot description gt is fuzzy slot name description of fuzzy set description of fuzzy set is lt linguistic expr gt standard lt singletons gt and the certainty factor is optional if not specified a CF of 1 0 is assumed Some examples will illustrate the forms allowed for asserting fuzzy facts and fuzzy deftemplate facts 52 ERB 1054 FuzzyCLIPS Version 6 04A 5 6 Using Fuzzy Variables in Assert Statements Example 28 assert group few assert group 1 0 5 1 7 0 assert group NOT very few OR many assert group z 4 8 assert person name john ht extremely tall assert person name dan ht pi 0 5 6 assert temp 24 0 25 1 26 0 Example 29 defrule assert rule 1 zmin minval Variable minval must be numeric zmax maxval Variable maxval must be numeric gt assert group z minval maxval fuzzy set description with variables defrule assert rule 2 asserts standard set with functions zmin minval zmax maxval assert group z minval maxval 2 defrule assert rule 3 asserts singleton set with functions x1 xlval x2 x2val assert group xlval 0 x2val 1 x2val 1 0 6 sqr x2val 0 The assert string function of CLIPS may also be used to assert fuzzy facts The rules for constructing the strings are as descr
76. r FUZZY CRISP and any global contribution This calculated certainty factor will then be multiplied by the certainty factor given in the assert statement This could be useful as a method of assign ing weighted certainty factors for a rule with multiple consequents Note that if the fact is not asserted during a rule execution e g from the CLIPS command level then only global contribution will apply in determining the cer tainty factor for the asserted fact i e if the fact does not exist already then the certainty will be as specified in the assert and if it does exist the certainty will be modified to be the maximum of the existing certainty and the cer tainty specified in the assert Example 10 defrule assert cf rule declare CF 0 8 rule CF is 0 8 fact 1 assert c1 assert c2 CF 0 7 assert c2 with CF 0 7 assert c3 assert c4 where fact 1 CF 0 9 matching fact has CF 0 9 the conclusions reached on the RHS would be assert cl CF 0 8 0 9 0 72 assert c2 CF 0 7 CF 0 8 0 9 0 7 0 504 assert c3 CF 0 8 0 9 0 72 assert c4 CF 0 8 0 9 0 72 The above rule attaches a lower CF to conclusion c2 than to the other conclusions 26 ERB 1054 FuzzyCLIPS Version 6 04A 4 4 Defuzzification 4 4 Defuzzification The outcome of the fuzzy inference process is a fuzzy set specifying a fuzzy distribution of a conclusion How ever in some cases such as control applications only a s
77. rent version of the system the membership function of the relation R is calculated according to the for mula ug v mine G0 up W VQ v e Ux V a c Other algorithms for forming this relation can be found in 15 The calculation of the conclusion is based upon the compositional rule of inference 16 which can be described as follows F F R where F lt is a fuzzy set denoting the value of the fuzzy object of the consequent The membership function of F is calculated as follows 17 Wp A max e Umin hp 0 Ug v which may be simplified to Mp v min z Hp v C where z max min u w min ue e The certainty factor of the conclusion is calculated according to 2 CF CF CF Example 6 defrule fuzzy fuzzy rule both antecedent and consequent are fuzzy objects temperature hot assert temp_change little temperature warm a fact in the fact database Orchard 19 4 Fuzzy Expert Systems A graphical illustration of the matching of the fuzzy fact with the fuzzy pattern and the generation of the fuzzy conclusion is shown below in Figure 8 Note that this type of inference method is commonly referred to as max min rule of inference The conclusion set is simply clipped off at the z value Figure 9 shows the same results using a max prod rule of inference In this case the conclusion has all of its membership values scaled by the z value The FuzzyCLIPS function set inference type allows the contro
78. set gt CF lt certainty factor gt lt certainty factor expression gt where The certainty factor CF is optional if not specified a CF of 1 0 is assumed The lt description of fuzzy set gt is a lt linguistic expr gt or a lt standard gt Section 5 1 1 2 fuzzy set specification or a lt singletons gt Section 5 1 1 1 fuzzy set description The ability to use global variables and function calls is as per standard deffacts statements Also note that a RHS slot may be a slot of type FUZZY VALUE Orchard 51 5 Using the FuzzyCLIPS Extensions Example 27 deffacts groupA some fuzzy facts my_group 1 0 5 1 7 0 Singleton description your_group z 4 8 Standard description their group s 1 1 4 person name ralph ht tall deffacts groupB some fuzzy facts with certainty factors this group 1 0 5 1 7 0 CF 0 35 that group pi 2 3 4 CF 2 3 5 6 Using Fuzzy Variables in Assert Statements The syntax of the assert construct has been expanded to allow fuzzy facts as arguments and for the certainty factor of a crisp or fuzzy fact to be specified The assert command with a single fact asserted in an assert function call is of the form assert crisp fact fuzzy variable name description of fuzzy set template name lt slot description gt CF certainty factor certainty factor expression where indicates that there are one or more of the lt slot descri
79. st a series of individual peaks see Figure 13 In this case there are an infinite number of maximum points between x and x and using the average of the three points x x5 and x3 results in what may be an incorrect or perhaps an unexpected value It is not entirely clear what the answer should be see Section 8 for a discussion of this prob lem and see Section 5 7 to see how to perform defuzzification in FuzzyCLIPS using the moment defuzzify and maximum defuzzify functions 27 299 Figure 14 MOM example Ambiguity Orchard 29 5 Using the FuzzyCLIPS Extensions 5 Using the FuzzyCLIPS Extensions The following sections present the syntax for defining fuzzy variables using fuzzy variables in LHS patterns and in facts declaring certainty factors changes made to the assert statement defuzzification functions and commands for accessing fuzzy parameters and for accessing certainty factor information 5 1 Defining Fuzzy Variables in Deftemplate Constructs All fuzzy variables must be predefined before use with the deftemplate statement This is an extension of the stan dard deftemplate construct in CLIPS The extended syntax of this construct is as follows deftemplate lt name gt lt comments gt from to lt unit gt universe of discourse list of primary terms name is the identifier used for the fuzzy variable The description of the universe of discourse
80. t height type FUZZY VALUE fz height slot weight type FUZZY VALUE fz weight defrule big person person name n weight heavy height tall printout t n is a big person crlf The use of fuzzy slots has a big payoff in many situations Given the last example and only fuzzy deftemplate facts it would be necessary to define a fuzzy deftemplate for each person s weight and each person s height as well as rules for each person In effect a fuzzy deftemplate acts somewhat like a type definition for the language in which a fuzzy variable type is defined 5 3 Modifiers Hedges and Linguistic Expressions 5 8 1 Predefined Modifiers As mentioned in Section 4 1 a modifier may be used to further enhance the ability to describe our fuzzy concepts Modifiers very slightly etc used in phrases such as very hot or slightly cold change modify the shape of a fuzzy set in a way that suits the meaning of the word used These modifiers are commonly referred to as hedges FuzzyCLIPS has a set of predefined modifiers that can be used at any time to describe fuzzy concepts when fuzzy terms are described in fuzzy deftemplates fuzzy rule patterns are written or fuzzy facts or fuzzy slots are asserted 38 ERB 1054 FuzzyCLIPS Version 6 04A 5 3 Modifiers Hedges and Linguistic Expressions Modifier Name not very somewhat more or less extremely above below intensify2 plus norm slightly Modifier Description
81. t included the graphics extensions available in wxCLIPS from the University of Edinburgh Gary Riley of NASA provided copies of CLIPS 6 0 and the CLIPS test routines to assist in the development of FuzzyCLIPS Reg Shevel of the Institute for Information Technology at NRC provided a great deal of assistance in the validation of the system Orchard 83 Appendix A 10 References 1 ON ta A 10 11 12 13 14 15 16 17 18 19 20 21 22 23 84 Artificial Intelligence Section CLIPS Reference Guide Volume I Basic Programming Guide CLIPS Version 6 0 Lyndon B Johnson Space Center June 2 1993 Artificial Intelligence Section CLIPS Reference Guide Volume II Advanced Programming Guide CLIPS Version 6 0 Lyndon B Johnson Space Center June 2 1993 E H Shortliffe Computer based medical consultation MYCIN American Elsevier New York 1976 B G Buchanan and E H Shortliffe Rule Based Expert Systems Addison Wesley Reading MA 1984 G Shafer A Mathematical Theory of Evidence Princeton University Press Princeton NJ 1976 K P Adlassing and G Kolarz Representation and semiautomatic acquisition of medical knowledge in Cadiag 1 and Cadiag 2 Computers and Biomedical Research 19 63 79 1988 T Whalen B Schott and F Ganoe Fault diagnosis in fuzzy network Proceeding of the 1982 International Conference on Cybernetics and Society IEEE Press New York 1982 J Buckley and W Siler Fuzzy Operators for possi
82. takes the following form fact CF certainty factor 1 Note that only facts have associated certainty factors Object instances do not have certainty factors in this version of FuzzyCLIPS so that all object instances are treated as if they had certainty factors of 1 0 12 ERB 1054 FuzzyCLIPS Version 6 04A 4 2 Uncertainty The CF acts as the delimiter between the fact and the certainty factor and indicates an optional part For exam ple prediction sunny CF 0 8 is a fact that indicates that the weather will be sunny with a certainty of 80 However if the certainty factor is omitted as in a normal CLIPS fact prediction sunny then FuzzyCLIPS assumes that the weather will be sunny with a certainty of 100 Certainty factors may also be associated with entire rules as illustrated by Example 2 Example 2 defrule flight rule declare CF 0 95 declares certainty factor of the rule animal type bird assert animal can fly represents the hypothesis that 95 of the time if an animal is a bird then it can fly Similar to facts if the certainty factor ofa rule is not declared it is assumed to be equal to the value 1 0 Uncertainty and fuzziness can occur simultaneously see Example 3 Example 3 deffacts FuzzyAndUncertainFact Speed_error more_or_less zero CF 0 9 defrule Uncertain_rule declare CF 0 8 Johns_age young assert John goes to school where Speed_error an
83. tensions Example 14 Let U x 0 lt x lt 9 We may then define a fuzzy set few as follows u 0 0 u 1 0 u 2 0 3 u 3 0 9 u 4 1 u 5 0 8 u 6 0 5 u 7 0 u 8 0 u 9 0 One can represent this fuzzy set by the following list of singletons 1 0 2 0 3 3 0 9 4 1 5 0 8 6 0 5 7 0 One can also show this set graphically as in Figure 15 Figure 15 Fuzzy Set of group few In FuzzyCLIPS one can define a linguistic variable group that has a universe of discourse from 0 to 9 units unspecified and the primary term few as follows deftemplate group a linguistic variable declaration 09 universe of discourse limits no units Start of primary term declarations a primary term few described in singleton notation few 1 0 2 0 3 30 9 4 1 5 0 8 6 0 5 7 0 end of primary term declarations end of fuzzy deftemplate Note that it is possible for consecutive x values to be the same This describes a crisp boundary in the fuzzy set vertical line If more than three points have the same value then only three will be kept the fourth will always replace the third If two points have exactly the same x and y values then one of them will be discarded Consider the following two examples of fuzzy sets with crisp boundaries 32 ERB 1054 FuzzyCLIPS Version 6 04A 5 1 Defining Fuzzy Variables in Deftemplate Constructs Example 15 The singleton set described as
84. that identifies a fuzzy deftemplate fact in this case the fuzzy value from the fact is extracted and used a variable with a fuzzy deftemplate fact address in this case the fuzzy value from the fact is extracted and used a variable with a fuzzy value The identifies that one or more lt fuzzy value gt arguments may be present The fuzzy deftemplate associated with ALL fuzzy values to be plotted on the same plot must be the same one This is required since the x axis must have the same meaning The lt high limit gt and lt low limit gt values allow a window of the universe of discourse to be displayed and provides for scaling the graph in the x axis ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 50 deftemplate temp 0 100 C cold z 20 70 hot s 30 80 plot fuzzy value Fuzzy Value temp Linguistic Value 00 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 05 OOo ooo oocococococococooooocoocowdu t nil nil create fuzzy value temp hot hot kk kk OOK RRR RRR ee ke eek eee Universe of Discourse From 0 00 to 100 00 Orchard 73 74 plot fuzzy value t 20 70 Fuzzy Value temp Linguistic Value 00 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 05 oo0oo0000 0000000 0000 00000O0O
85. the PI function if parameter d is zero then the function will be represented by three points Example 19 PI 0 10 will be represented 10 0 10 1 10 0 5 1 1 3 Linguistic Expression Representation Linguistic expressions are defined in Section 5 3 in detail but a simple example will illustrate the usage Example 20 deftemplate temperature 0100 C cold z 10 26 standard set representation hot s 37 60 standard set representation warm not hot or cold linguistic expression Note that the term warm is described as being not hot or cold It uses the terms hot and cold previously defined in this deftemplate to describe the warm concept Only terms described in this deftemplate before the term definition being defined can be used along with any available modifiers and the and and or operations 5 2 Standard Deftemplate Definitions with Fuzzy Slots fields A fuzzy deftemplate describes a fuzzy variable One may use these deftemplates to describe fuzzy facts in patterns and assert commands For example defrule high temp temperature hot gt assert move throttle negative big printout t The temperature is hot contains a fuzzy pattern based on the fuzzy deftemplate temperature It also contains an assertion of a fuzzy fact based on the fuzzy deftemplate for move throttle Facts that have as their relation name the name of a fuzzy deftemplate will be referred to as fuzzy deftemplate facts These facts
86. tions to support embedded applications and user extensions to FuzzyCLIPS may be needed and sugges tions will be entertained Contact NRC with details Orchard 79 8 Limitations and Future Work 8 _Limitations and Future Work The current version of FuzzyCLIPS has been tested with some diligence but there may be omissions or errors that are discovered Future extensions modifications to FuzzyCLIPS will depend on user feedback As experience is gained using FuzzyCLIPS it may be that users will find things that work in unexpected or undesirable ways Please feel free to comment on such things in the interest of promoting a useful tool One example of an area that might provoke some discussion is the maximum defuzzify function that is used to defuzzify fuzzy facts As pointed out in Section 4 4 2 this is a situation that is difficult to decide how best to han dle One solution is to perform the average of all discrete maximum values as we have done in this implementa tion Perhaps a better method would be to consider points that define a continuous range of x values all at the maximum value to be represented by the mid point of that range plus a weight equal to the difference between the upper and lower x values of that range A single point maximum would be represented by the x value plus a weight of zero Then the defuzzified value would be calculated as 1 if weights are all zero Y uos 2 if not all weights are zero Y nos x weight y
87. uations where a simulated clock is used to keep track of time When the system is stopped with run n or con trol C one would want the simulated clock to stop too When the system is resumed one would want the clock to resume from where it left off when the system was stopped i e without advancing during the stopped interval A function is added to the list of functions called when the run command is executed by calling the AddRunStart Function It can be removed from this list by calling the RemoveRunStartFunction Similarly a function is added to the list of functions called when the run command is terminated by calling the AddRunStopFunction It can be removed from this list by calling the RemoveRunStopFunction Note these external functions must have been previously defined as user functions The following are examples of calls to these four functions AddRunStopFunction haltTimer haltTimer 1 AddRunStartFunction continueTimer continueTimer 1 RemoveRunStopFunction haltTimer RemoveRunStartFunction continueTimer The AddRunStopFunction and AddRunStartFunction functions have three arguments a string name of the func tion to be added a pointer to a function to be executed and a priority for the function 78 ERB 1054 FuzzyCLIPS Version 6 04A 7 1 Modifying and Duplicating Facts 7 CLIPS Functionality within FuzzyCLIPS 7 1 Modifying and Duplicating Facts The CLIPS functions modify and d
88. uction This report describes changes made at the National Research Council NRC to implement a fuzzy expert system shell on top of CLIPS 1 2 This extended version of CLIPS is called FuzzyCLIPS The modifications made to CLIPS contain the capability of handling fuzzy concepts and reasoning It enables domain experts to express rules using their own fuzzy terms FuzzyCLIPS allows any mix of fuzzy and normal terms numeric comparison logic controls and uncertainties in the rules and facts Fuzzy sets and relations deal with fuzziness in approximate rea soning while certainty factors for rules and facts manipulate the uncertainty The use of the above modifications are optional and existing CLIPS programs still execute correctly Section 2 describes restrictions and conditions of use for FuzzyCLIPS Section 3 gives information on how to install FuzzyCLIPS at a site Section 4 describes the changes made to CLIPS to implement fuzzy expert systems and gives some theoretical background on fuzzy logic Section 5 describes how to use the changes made at the NRC Section 6 discusses the further changes made to CLIPS to accommodate the needs of continuously operating systems Section 7 addresses the functionality of CLIPS within FuzzyCLIPS Section 8 briefly discusses some of the limitations of FuzzyCLIPS and what future work could be done Orchard 1 2 Licence for NRC Software 2 Licence for NRC Software This software is provided by The National Rese
89. uplicate are different for fuzzy facts These functions will always return FALSE when used with deftemplate fuzzy facts this is as for standard CLIPS facts whose relation name is not a deftem plate name When we have a fuzzy fact CLIPS fact with fuzzy slots the behaviour for modify is the same as a normal modify the existing fact is retracted and the new fuzzy fact is asserted However for duplicate the fuzzy slots in the fuzzy fact are aggregated global contribution creating a new fact the existing fact is retracted and the new fact is asserted There is no duplicate fact created This happens even if fact duplication is turned off 7 2 Load Save Bload Bsave Load facts Save facts The CLIPS functions load save bload bsave load facts and save facts should all work correctly with Fuzzy CLIPS programs that include fuzzy facts fuzzy deftemplates and certainty factors 7 3 Constructs to c Creating a runtime version of a FuzzyCLIPS program can be done as for a normal CLIPS program using the con structs to c function and following the instructions in the CLIPS manuals 7 4 CreateFact GetFactSlot PutFactSlot Functions defined in the advanced user s guide like CreateFact GetFactSlot and PutFactSlot will be usable with FuzzyCLIPS however the exact details for creating and accessing Fuzzy Values will require some further detailed knowledge of the internal structures of FuzzyCLIPS Contact NRC if these are needed Other func
90. uzzy value gt Purpose Returns the returns the linguistic value associated with the fuzzy set ERB 1054 FuzzyCLIPS Version 6 04A 5 9 FuzzyCLIPS Commands and Functions Example 38 if temp very hot is asserted and the variable fuzzyfact is assigned to this fact then the function call get fs lv fuzzyfact would return the string very hot Command get fs value Syntax get fs value lt fact var gt lt number gt or get fs value lt integer gt lt number gt or get fs value lt fuzzy value gt lt number gt Returns the returns the value of the fuzzy set at the specified x value lt number gt The lt number gt is a value that must lie between the lower and upper limits of the universe of dis course for the fuzzy set Purpose Example 39 Suppose we have defined the following deftemplate temp 0 100 C OK 30 0 60 1 90 0 and we assert the fact temp OK Then if we bind that fact to a variable fact we could call get fs value fact 50 0 and it would return 0 6666667 5 9 3 Accessing the Certainty Factor get cf Command get cf Syntax get cf lt fact var gt get cf lt integer gt or Purpose Returns the certainty factor of a fact as a floating point number Orchard 61 5 Using the FuzzyCLIPS Extensions Example 40 Suppose a fact on the fact list is temperature cold CF 0 7 defrule print cf rule f temperature gt printout t The certainty o
91. weight 80 ERB 1054 FuzzyCLIPS Version 6 04A 6 Limitations and Future Work Consider the following two examples 0 2 4 6 max values at 1 3 5 and 7 max values at 1 5 weight 1 3 weight 0 all weights 0 5 weight 2 and 8 weight 0 Calc defuzzified values as Calc defuzzified value as 1434547 4 0 1 5 143 045 248 0 14 0 24 0 3 833 current method would give 1 2 3 4 6 8 6 4 0 same as current method Another possible source of discussion is the calculation of certainty factors This can be quite difficult to under stand especially when complex rules are used Could this be simplified and still retain the intensions as described in this document A third possible problem area is the handling of truth maintenance via the logical construct in rules Consider the following 2 rules defrule r1 defrule r2 logical x logical y gt gt assert temp low assert temp medium where temp is a fuzzy deftemplate fuzzy variable If both of these rules are fired then the temp fact will exist as temp low OR medium due to global contribution If both facts x and y are retracted then the logical support for the temp fact will be lost and the fact will be retracted as expected However when one of the logically supporting facts is retracted the other still supports the fact and it remains asserted as temp low OR medium The effect of global contribution is not undone For example should the fact x b
92. y C Foy Fe Fr N Fez A Ay C Fo Figure 10 Compositional rule for multiple antecedents The certainty factor of the conclusion is calculated according to MYCIN s model CF min CFf CFf CF where min denotes the minimum of the two numbers and CF is the CF of the simple rule if A then C given the matching fact A CFp is the CF of the simple rule if A then C given the matching fact A The above algorithm can be applied repeatedly to handle any combination of antecedent patterns 1 e FY Fe C Fo wee OO Fon CF min CF ey CFpy CF CF 1 Later we will discuss fuzzy facts that are not fuzzy deftemplate facts facts whose relation name is a fuzzy deftemplate These facts can have fuzzy values in one or more slots of the fact person name John height very tall weight heavy Having multiple fuzzy slots in the fact is similar to having multiple fuzzy antecedents with each fuzzy slot being treated in a manner similar to a fuzzy deftemplate fact as described in this section 22 ERB 1054 FuzzyCLIPS Version 6 04A 4 3 Inference Techniques 4 3 3 Global Contribution In standard CLIPS a fact is asserted with specific values for its fields If the fact already exists then the behaviour is as if the fact was not asserted unless fact duplication is allowed In such a crisp system there is never any need to re assess the facts in the system
93. y Variables in Deffacts Constructs 51 Using Fuzzy Variables in Assert Statements 52 Defuzzification 54 Certainty Factors of Rules 55 FuzzyCLIPS Commands and Functions 56 5 9 1 Accessing the Universe of Discourse get u get u from get u to get u units 56 5 9 2 Accessing the Fuzzy Set get fs get fs x get fs y get fs length get fs lv get fs value 59 5 9 3 Accessing the Certainty Factor get cf 61 5 9 4 Accessing the Threshold Certainty Factor threshold get threshold 62 5 9 5 Setting the Rule CF Evaluation Behaviour set CF evaluation set CF evaluation 62 5 9 6 Controlling the Fuzzy Set Display Precision set fuzzy display precision get fuzzy dis play precision 63 5 9 7 Controlling the Fuzzy Inference Method set fuzzy inference type get fuzzy inference type 64 5 9 8 Setting the Fuzzy Pattern Matching Threshold set fuzzy inference type get fuzzy infer ence type 64 5 9 9 Fuzzy Value Predicate Function fuzzvaluep 66 5 9 10 Creating and Operating on FUZZY VALUEs create fuzzy value fuzzy union fuzzy inter section fuzzy modify 66 5 9 11 Accessing a Fuzzy Slot in a Fact get fuzzy slot 71 5 9 12 Displaying a Fuzzy Value in a Format Function 71 5 9 13 Plotting a Fuzzy Value plot fuzzy value 72 5 9 14 Controlling the Result of Defuzzification 76 5 10 Simple Example 77 6 Continuous Systems 78 6 1 6 2 The Run Command 78 Runstart and Runstop Functions 78 7 CLIPS Functionality within FuzzyCLIP

Download Pdf Manuals

image

Related Search

Related Contents

Trust Widescreen HD Webcam  SWIR Cameras WidY 640X510 320X256  Laxa-form®  MANUAL DE INSTRUÇÕES DO MEDIDOR DE pH DA  Quantum Q1a and Q2 DCC Reference Manual Ver. 4.2.0  411 日本郵政公社    Manual on Selection and Use of Engine Coolants  取扱説明書 (1.29 MB/PDF)    

Copyright © All rights reserved.
Failed to retrieve file