11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

204 fuzzy logicdefining <strong>and</strong> arranging functions until the desired processingis accomplished. (The decision making accomplishedby branching statements in imperative languages is accomplishedby incorporating conditionals in function definitions.)Many functional languages (including LISP) for convenienceincorporate some features <strong>of</strong> imperative languages.The ML language, for example, includes data type declarations.A similar language, Haskell, however, eschews allsuch imperative features.ApplicationsFunctional languages have generally been used for specializedpurposes, although they can in principle perform anytask that an imperative language can. APL, which is basicallya functional language, has devotees who appreciate itscompact <strong>and</strong> powerful syntax for performing calculations(see apl). LISP <strong>and</strong> its variants have long been favored formany artificial intelligence applications, particularly naturallanguage processing, where its representation <strong>of</strong> data aslists <strong>and</strong> the facility <strong>of</strong> its list-processing functions seems anatural fit.Proponents <strong>of</strong> functional languages argue that they freethe programmer from having to be concerned with explicitlysetting up <strong>and</strong> using variables. In a functional language,problems can <strong>of</strong>ten be stated in a more purely mathematicalway. Further, because functional programs are not organizedas sequentially executed tasks, it may be easier toimplement parallel processing systems using functionallanguages.However, critics point out that imperative languages aremuch closer to how computers actually work (employingactual storage locations <strong>and</strong> sequential operation) <strong>and</strong> thusproduce code likely to be much faster <strong>and</strong> more efficientthan that produced by functional languages.Further ReadingBird, R. Introduction to Functional Programming Using Haskell. 2nded. London: Prentice Hall, 1998.Hudak, Paul. The Haskell School <strong>of</strong> Expression: Learning FunctionalProgramming through Multimedia. New York: Cambridge UniversityPress, 2000.Michaelson, Greg, Phil Trinder, <strong>and</strong> Hans-Wolfgang. Loidl, eds.Trends in Functional Programming. 2 vols. Portl<strong>and</strong>, Oreg.:Intellect, 2000.Thompson, S. Haskell. Mir<strong>and</strong>a: The Craft <strong>of</strong> Functional Programming.2nd ed. Reading, Mass.: Addison-Wesley, 1996.fuzzy logicAt bottom, a data bit in a computer is “all or nothing”(1 or 0). Most decisions in computer code are also all ornothing: Either a condition is satisfied, <strong>and</strong> execution takesone specified path, or the condition is not satisfied <strong>and</strong> itgoes elsewhere. In real life, <strong>of</strong> course, many situations fallbetween the cracks. For example, a business might want totreat a credit applicant who almost qualifies for “A” statusdifferent from one who barely made “B.” While a programcould be refined to include many gradations between B <strong>and</strong>A, another approach is to express the degree <strong>of</strong> “closeness”(or certainty) using fuzzy logic.In 1965, mathematician L. A. Zadeh introduced the concept<strong>of</strong> the fuzzy set. In a fuzzy set, a given item is notsimply either a member or not a member <strong>of</strong> a specified set.Rather, there is a degree <strong>of</strong> membership or “suitability”somewhere between 0 (definitely not a member) <strong>and</strong> 1 (definitelya member). A program using fuzzy logic must includea variety <strong>of</strong> rules for determining how much certainty toassign in a given case. One way to create rules is to askexperts in a given field (such as credit analysis) to articulatethe degree <strong>of</strong> certainty or confidence they would feel in agiven set <strong>of</strong> circumstances. For physical systems, data canalso be correlated (such as the relationship <strong>of</strong> temperatureto the likelihood <strong>of</strong> failure <strong>of</strong> a component) <strong>and</strong> used to createa rule to be followed by, for example, a chemical processcontrol system.Fuzzy logic is particularly applicable to the creation <strong>of</strong>programs (see expert system) that are better able to copewith uncertainty <strong>and</strong> the need to weigh competing factorsin coming to a decision. It can also be used in engineeringto allow designers to specify which factors they wantto tightly constrain (such as for safety reasons) <strong>and</strong> whichcan be allowed more leeway. The system can then come upwith optimized design specifications. Fuzzy logic has alsobeen applied to areas such as pattern recognition <strong>and</strong> imageanalysis where a number <strong>of</strong> uncertain observations must<strong>of</strong>ten be accumulated <strong>and</strong> a conclusion drawn about theoverall object.Further ReadingBojadziev, George, <strong>and</strong> Maria Bojadziev. Fuzzy Logic for Business,Finance, <strong>and</strong> Management. 2nd ed. Hackensack, N.J.: WorldScientific Publishing Co., 2007.“Fuzzy Logic Tutorial.” Encoder (Seattle Robotics Society). March1998. Available online. URL: http://www.seattlerobotics.org/encoder/mar98/fuz/flindex.html. Accessed August 4,2007.Mendel, Jerry M. Uncertain Rule-Based Fuzzy Logic Systems: Introduction<strong>and</strong> New Directions. Upper Saddle River, N.J.: PrenticeHall PTR, 2000.Nguyen, Hung T., <strong>and</strong> Elbert A. Walker. A First Course in FuzzyLogic. 3rd ed. Bocal Raton, Fla.: Chapman & Hall/CRC,2006.Sanchez, E. Fuzzy Logic <strong>and</strong> the Semantic Web. Amsterdam: Elsevier,2006.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!