***0
ABOUT -- This window tells you about FuzzGen, and what revision of the software you are currently running. It will also tell you how to contact us in case you would like to order Fuzzgen or need a question answered. Please note how to contact our ASL representative if you are in Europe or the U.K. Clicking the Alston logo will tell you about the company.

***1
APPLY BUTTON -- This button allows you to draw your graph on the main viewing area. You must first set up your main graph attributes and create decision waveshapes so that the graph makes sense. 

***2
BOOLEAN SHAPE -- This decision shape is essentially a mimic of an on/off decision. If data falls within the boundry at all it is 'ON' and otherwise 'OFF.' Boolean decision shapes can be used to act as a "watchdog" over areas that may overlap too closely. They can also be used in areas that need a threshold alarm. I.E. you can have data that, if it falls within a selected region, trips an alarm. The boolean shape allows a convenient way to implement alarms.

***3
CODE GENERATION -- When FuzzGen outputs code it is in the language as selected (checked) in the language menu, and it is written to disk. The name used is the name of the data file used plus the appropriate DOS extension for the source. I.E. code output when you have filename DUMMY.FUZ opened will be DUMMY.C, DUMMY.PAS, and DUMMY.BAS. The code takes the form of a series of global constants being used by a series of functions. Functions all follow the data set number (See SETUP DATA SETS) and are named DECISION1, DECISION2, and so on to DECISIONn. Please refer to the documentation for more detailed information.

***4
DECISIONS -- Fuzzy Logic essentially compartmentalises input data such that the input data is checked to see if it is a member of a given data subset. In the FuzzGen Evaluation Version you can use 3 classes of decision 'shapes' to classify what data will be in what subset and the extent of the membership within the subset. Each subset can be shaped to classify data so that the membership is seen as a matter of degree along a linear slope or as a function of belonging and not-belonging. See the TRIANGULAR, TRAPEZOIDAL and BOOLEAN SHAPE topics.

***5
FUZZGEN OVERVIEW -- FuzzGen allows you to graphically model how decisions are made on varying input data using the concept of data sets and membership. Once the range of data and decisions that need to be made are laid in, FuzzGen will produce source code that will allow you to insert Fuzzy Logic decision making capabilities into any program. 

***6
FUZZY LOGIC -- Fuzzy Logic is a way of looking at data (and making decisions) that uses something other than simple boolean (ON/OFF) decision making. It allows for a certain amount of imprecision in input data so that decision making based on an input do not need to be overly complicated. In most computer applications input data is tested against a series of conditional statements to determine what range it is in. In real life this is not always the right way to do things. Fuzzy Logic allows you to better simulate human style decision making capabilites. FuzzGen aids in this endeavouor by making it simpler to add decision making by doing it graphically and then outputting the appropriate source code. Fuzzy Logic is used extensively in Japan and is gaining ground in the US as a method to more quickly model and design software around input data.

***7
FILE OPEN -- Allows you to specify drive, directory and filename of a FuzzGen data file to open.
You may type the name into the filename box and click the OK button, or you can click the file name in the list box and click OK, or you can doubleclick the filename in the list box. You can select drive and directory in the right hand box. When you select a new file, the old one in memory is overwritten.

***8
FILE NEW -- Allows you to start a new file from scratch. All that is necessary is giving it a name for future reference. The default name in the name input box is DUMMY. If you choose a name that currently exists in the present drive \ directory, you will be warned. When you enter the name you want for the file, do not enter a DOS extension, as FuzzGen uses it's own default.

***9
FILE SAVE -- Saves the current file in memory using the name it was opened as in the same directory it was opened in.

***10
FILE SAVE AS -- Saves the current file in memory and names it to whatever you enter. FuzzGen will check to see that this name is unused in the current drive \ directory. The name you enter will not be accepted if you add a DOS extension, as FuzzGen will append it's own -- *.FUZ.

***11
GRAPHS -- The ability to model decision making with FuzzGen uses a visual model so that it is readily understood. Essentially, FuzzGen uses 2 axis graphs -- the Y axis is used to denote a percentage of membership and the X axis is used to denote the ordinal data range. Decision ranges appear as triangles, trapezoids, and rectangles. The degree of membership within a data set is determined by where the data value intersects the lines denoting the decision shape.

***12
LANGUAGES -- FuzzGen supports source code output in 3 of the most popular microcomputer languages: BASIC, PASCAL, and C. Since there is a wide variety of BASIC dialects, we chose to use QUICKBasic/POWERBasic/TURBOBasic as the default model, as these appear to be the most popular and widely available BASICs found on PC's. We used a structured FUNCTION approach. Please refer to the documentation on how to convert this to other BASIC dialects. The PASCAL compiler we chose to use as a target compiler is the BORLAND INTERNATIONAL Turbo PASCAL. The C language output should work with any C complier as it is ANSI compatible C. In all cases we used a single function per decision where the return value is the degree of membership in a floating point value. The inputs include the DATA_TEST_VALUE (i.e. input value to test) plus constants (which can be substituted out) which are particular to a given function. In the BASIC source, we simply declare these as GLOBAL variables. In PASCAL output we use the CONST keyword and assign them as REALs. In the C output we use #defines to describe these constants. 

***13
SETUP DATA SETS -- Allows you to define a decision. First, you need to determine the shape of the decision. (Refer to the documentation about decision shapes, or see the TRIANGULAR, TRAPEZOIDAL, or BOOLEAN SHAPE topics.) Once you have selected the general shape option you will use, you'll need to "fine-tune" the shape. Click the picture associated with the decision shape that you've selected. Each time you click the picture it will change shape characteristics. After you have selected the general shape characteristic, you'll need to enter the X axis data that defines the cutoff points of the regions. This data need to be in context with the limits imposed by the overall range of data. For instance, if you are working with temperature from 0 - 100 degrees, you cannot define a decision that works with data from 90 - 120 degrees, as the decision limit should be less than or equal to the data range high point of 100. Then, you should select a TAG colour that will allow you to easily identify this decision subset on the graph. After you are satisfied that the decision shape and placement are correct, you should click the RECORD button to record this information. 


***14
SETUP GRAPH -- Allows you to define the data range (X axis) of the data you will need to make decisions on, and also allows you to set up the tick marks to aid in visualisation. The data range is used to limit the DATA SETS (decision subsets) to the available input data. You'll also need to define how many decisions (data sets) that you will be using.

***15
TRAPEZOIDAL SHAPE -- The trapezoidal set should be used when there is a region of data that is unchanging relative to one or both extremes. This region becomes boolean in nature as the trapezoidal shape reaches the apex and stays at the 100% level until it reaches the opposite apex point.

***16
TRIANGULAR SHAPE -- The triangular shape should be use when there is but a single point of data in the decision that could be considered as 100%. This is the most common shape to use as it allows maximum overlap between decision points. 


