home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / prolog / 2083 < prev    next >
Encoding:
Text File  |  1992-11-15  |  1.4 KB  |  49 lines

  1. Newsgroups: comp.lang.prolog
  2. Path: sparky!uunet!mcsun!news.funet.fi!aton.abo.fi!usenet
  3. From: HVIRTANEN@finabo.abo.fi (Harry Virtanen INF)
  4. Subject: Re: Fuzzy predicates anyone?
  5. In-Reply-To: tusveld@ictser.UUCP's message of 10 Nov 92 08:51:37 GMT
  6. Message-ID: <1992Nov16.093840.24818@abo.fi>
  7. Sender: usenet@abo.fi (Usenet NEWS)
  8. Organization: Abo Akademi University, Finland
  9. References:  <1731@ictser.UUCP>
  10. Date: Mon, 16 Nov 1992 09:38:40 GMT
  11. X-News-Reader: VMS NEWS 1.23
  12. Lines: 35
  13.  
  14.  
  15. In <1731@ictser.UUCP> tusveld@ictser.UUCP writes:
  16.  
  17. > Hello,
  18. > for an application I would like to use some fuzzy predicates. 
  19. > Does anyone have some simple predicate definitions that make use of 
  20. > standard Prolog arithmetic, and that can be used to illustrate use of 
  21. > fuzzy values in Prolog?
  22. > Thanks in advance.
  23.  
  24. Hmm! 
  25. There is ofcourse some Fuzzy Prolog interpreters around (Prolog/P, 
  26. Prolog-ELF etc.). I've experimented myself with building a simple
  27. Fuzzy Prolog in which facts and rules are fuzzy, i.e. they have a
  28. numeric value attached to them (call them certainty factors or what
  29. ever). 
  30.  
  31.     (A<--B)<-p1    % rule
  32.         (A<--)<-p2     % fact
  33.  
  34. If B is of type B1,B2,...., then T(B) = max(0,T(B1)+T(B2)-1)
  35. If B is of type B1;B2;...., then T(B) = max(T(B1),T(B2))
  36. If B is not B, then T(not B) = 1-T(B)
  37. T((A<--)<-p) = p
  38. T((A<--B)<-p) = max(0,p+T(B)-1) = T(A)
  39.  
  40. But I guess this not at all what you are seeking for
  41.  
  42. Harry "too fuzzy today" Virtanen
  43. Abo Akademi University
  44. Abo, Finland
  45.