FUZZY LOGIC

return to technical articles

background material, circa 1998

        For the last few years I’ve been collecting basic data on cruising sailboats, and now have around 630 mono hull sailboats of all sizes and types catalogued in a computer database. My goal was to construct an accurate template of the critical variables that go into a good cruising boat and then search the data base for boats fitting this template. Once convinced that the process worked, I planned to use it as a tool for evaluating my own designs and to see how other new designs ranked. The database proved to be an excellent tool for storing information and calculating various ratios and performance parameters, and many interesting evenings were spent plotting various ratios Vs each other, trying to make sense out of the data. Unfortunately, I ran into problems when I attempted to construct my "Ideal Cruising Boat" template.

        The problems began when I used traditional logic statements to sort my database. Computer database programs are great at sorting out data within a discrete range, such as Disp/LWL ratios between 250 and 300, but these CRISP logical terms totally exclude all boats outside the selected range. This simple technique proved to be too crude and did not produce a useful list of candidate boats. In the real world, a value moderately less or greater than our crisp limits might be good enough for at least some consideration. Even the boats that pass the CRISP filters are not easily compared since they are all ranked the same. Again, in the real world, values closer to the midpoint of a range are often preferred by designers, at least as a starting point, and should be scored higher then those at the edges. It quickly became clear to me that traditional crisp logic was just too rigid a tool for evaluating small changes in cruising boat parameters.. What I needed was a process that would organize the boats in a manner sensitive enough to discriminate the best features for my Ideal Cruising Boat template.

        I was introduced to a possible way around this crisp logic dilemma by Jim Manzari, a gentleman I met on the Internet News Group, rec.boats.cruising. Jim shares my interest in evaluating cruising sailboats and was using a novel approach based on Fuzzy Logic. This is a relatively new field of mathematics, invented by Prof. Lotfi Zadeh at the University of California at Berkeley. Fuzzy logic replaces the familiar crisp logical statements such as "greater than 250 and less than 300" with linguistic statements such as CLOSE or VERY CLOSE to 275. Without rigid crisp logic boundaries, these "fuzzy logic variables" can be used to blur the edges of a logical set and allow each member in the set to be ranked individually.

        For example, instead of only showing Disp/LWL ratios between 250 and 300, a Fuzzy logic approach would assign a score (between 0 and 1) based on how close each boat was to the ideal Disp/LWL. A score of "0" indicates no compatibility with our concept and a score of "1" indicates perfect compatibility. For our purposes this score is called the Degree of Compatibility (DOC). In this example, a minimum of 230 and maximum of 370 might be specified, along with a region between the two that is close to the ideal value, lets say 280 - 320. Boats in the ideal region would score a perfect DOC of 1, while those on either side would have progressively lower scores. Boats outside the maximum or minimum would receive no score.  Instead of a large cluster of boats all logically the same, the Fuzzy logic process returns a list of Disp/LWL scores that can be sorted from 0 to 1. Just what we need for comparing various designs.

        The real power with this technique lies in the ability most of us have to approximate values based on our collective experience. Defining a single best value is very difficult compared with identifying a range that bounds the best value. For example, it should be no problem getting a group of experts to agree that good sailing performance is desirable for an offshore cruising boat. Likewise, they should all agree that the SailArea/Disp ratio is one important factor in sailing performance, and, that it should be high enough for good performance but not so high that seaworthiness (crew fatigue, rig strength, and weight) is compromised.

        A group of experts would probably never agree what the perfect SailArea/Disp ratio is, but they would probably consider starting with a Fuzzy set for an offshore cruiser having a minimum SailArea/Disp ratio of around 14, an optimum range CLOSE to 15 through 17, and a maximum of 19. This would filter out the under powered motorsailors and the red hot racers, all in one stroke. Usually several iterations are needed before the experts become familiar with how the process works and form a consensus. This typically involves reviewing the data and identifying what factors made some good boats score low and vice versa. After lots of heated debate, a consensus will be reached, the DOC variables can be adjusted, and the real fun of evaluating the boats can begin.

Basic Steps in Designing a Fuzzy Logic System for Comparing Cruising Boats

        1. Determine the minimum number of fuzzy variables required. Deciding which of the Scalar variables (boat parameters or specifications) to use is a process that involves a great deal of engineering judgment, as there is no single right answer. Each expert will have a preferred approach, and the final proof will be determined by the results and how they are excepted by other experts. I have gone through several iterations in this area and now use seven variables, Maximum Velocity, Capsize Risk, Comfort Factor, Disp/LWL ratio, SailArea/Disp ratio, Length /Beam ratio, and Length Over All.

        2. Establish the values for each fuzzy variable. Typically each fuzzy variable needs to be assigned a minimum, optimal, and maximum value. One of the more common configurations is a "trapezoidal curve", but many other shapes are possible. The values for each of these six fuzzy variables come from one of two sources, expert input or a specific boat design. Using expert input lets you construct a hypothetical template and find all the boats in the data base that are compatible with that concept, in our case, an Ideal Cruising Boat. Using inputs from a specific boat design for the fuzzy variables returns a list of boats that are similar to the original boat (no experts are needed). In either case, "Hedges" (SOMEWHAT CLOSE, CLOSE, or VERY CLOSE) can be applied to fine tune the number of boats that are compatible with each fuzzy variable. Typically, many boats will be SOMEWHAT CLOSE to a fuzzy variable while only a few will be VERY CLOSE. This ability to intensify (VERY) or dilute (SOMEWHAT) the strength of the fuzzy variable "CLOSE" gives us a powerful tool for discriminating among boat designs.

        3. Sort the data base for those boats compatible with ALL the fuzzy variables. This is done by applying the fuzzy logical AND operator, which is like a filter that selects only boats that have a high scoring Disp/LWL DOC, and a high scoring SailArea / Disp DOC, and a high scoring Capsize Risk DOC, etc., etc. Like a weak link in an anchor chain, If ANY one parameter is out of limits, the boat is not compatible with our concept of an Ideal Cruising Boat and it scores zero. For example, a boat might score high on speed but zero on low capsize risk. Fast and unsafe are NOT compatible with our concept of a good offshore boat, so the boat would score "zero".

        Fuzzy logic is a powerful new technique for ranking complex data sets and has great potential for evaluating cruising boats. The process allows us to compare boat designs by the subtle blending of six or more fundamental variables according to easily understood rules. Getting a useful set of input values from experts is not as difficult as it sounds, and even rough values will yield valuable insight into a designs basic potential. Using a specific boat as input eliminates the need for experts and can help guide a buyer towards groups of boats that are similar to the original. Both of these approaches result in valuable information, which can help sailors evaluate the suitability of a specific boat for offshore use or identify similar boats.

        The data base and fuzzy logic program can be downloaded from the Internet by pointing your browser at:

http://www1.iwvisp.com/download/pub/spreadsheet/  

(95k, Excel 97 required). 

[ Return to Home Page ]