huzzy-0.1.5.5: Fuzzy logic library with support for T1, IT2, GT2.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Huzzy.TypeOne.Sets

Synopsis

Documentation

data T1Set a Source

Type-1 fuzzy sets, with associated membership function and domain. Use smart constructors to create.

Instances

Num (T1Set a) 
FSet (T1Set a)

Type-1 fuzzy sets are the most basic fuzzy set.

Fuzzy (T1Set a)

Fuzzy operators are supported on T1Sets. Applies operator to membership functions inside T1Set type.

Defuzzifier (T1Set Double) 
FRule (T1Set a)

Simple type-1 fuzzy rule systems.

type Value (T1Set a) = a 
type Support (T1Set a) = [a] 
type Returned (T1Set a) = Double 
type Result (T1Set Double) = Double 
type Antecedent (T1Set a) = Double 

class Fuzzy a where Source

Standard operations on fuzzy sets. Instantiated for each kind of fuzzy set. If you want to overload with a t-norm, instantiate against a newtype or instantiated set.

Methods

(?&&) :: a -> a -> a infixr 3 Source

Union over fuzzy values.

(?||) :: a -> a -> a infixr 2 Source

Intersection over fuzzy values.

fnot :: a -> a Source

Fuzzy complement.

Instances

Fuzzy Double

Standard definitions for operations as defined by Zadeh (1965)

Fuzzy (MF a) 
Fuzzy (T1Set a)

Fuzzy operators are supported on T1Sets. Applies operator to membership functions inside T1Set type.

Fuzzy (IT2Set a)

Interval Type-2 fuzzy sets allow us to work in type-1 concepts. Operators are defined through application to lower and upper membership functions.

Fuzzy (T2ZSet a)

Operations on zSlices fuzzy sets are simply defined as higher order funcitons over the list of zSlices.

Fuzzy b => Fuzzy (a -> b)

Fuzzy operators for membership functions.

(Fuzzy a, Fuzzy b) => Fuzzy (a, b)

Instance for tuple needed for interval type-2 fuzzy sets.

class FSet a where Source

Specifically for fuzzy sets, as opposed to fuzzy values. Support is all elements of domain for which membership is non-zero. Hedge is a modifier of fuzzy sets. is is for application of a value to a fuzzy set.

Associated Types

type Value a Source

A single value of the domain.

type Support a Source

A list of values from the domain for which membership is non-zero.

type Returned a Source

Degree of membership from applying a value to membership function.

Methods

support :: a -> Support a Source

hedge :: Double -> a -> a Source

is :: Value a -> a -> Returned a Source

Instances

FSet (T1Set a)

Type-1 fuzzy sets are the most basic fuzzy set.

FSet (IT2Set a)

Enables use of support, hedge and is on interval type-2 fuzzy sets.

FSet (T2ZSet a)

Currently the most complex supported fuzzy set.

contT1 :: (Num a, Enum a) => a -> a -> a -> MF a -> T1Set a Source

Smart constructor for continuous membership functions. Warning, fine resolutions will make this a very slow construction.

discT1 :: [a] -> MF a -> T1Set a Source

Smart constructor for discrete continuous membership functions. Avoid large domains.

unsafeMkT1 :: [a] -> MF a -> T1Set a Source

Only use this if you're sure your membership functions are safe, or your domain is huge.

alpha :: Double -> T1Set a -> [a] Source

Cuts a type-1 fuzzy set at a given degree of membership.

findCuts :: Ord a => T1Set a -> Double -> (a, a) Source

Performs a cut and then finds the x values on the curve at point of cut.