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

Huzzy.TypeTwo.Interval.Sets

Synopsis

# Documentation

data IT2Set a Source

Interval Type-2 Fuzzy sets. Defined entirely by the footprint of uncertainty, lmf and umf are the bounds of this area.

Instances

 FSet (IT2Set a) Enables use of support, hedge and `is` on interval type-2 fuzzy sets. 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. Defuzzifier (IT2Set Double) FRule (IT2Set a) type Value (IT2Set a) = a type Support (IT2Set a) = [(a, a)] type Returned (IT2Set a) = (Double, Double) type Result (IT2Set Double) = (Double, Double) type Antecedent (IT2Set a) = (Double, 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.

contIT2 :: (Num a, Enum a) => a -> a -> a -> MF a -> MF a -> IT2Set a Source

Smart constructor for continuos interval type-2 membership functions. Watch that resolution!

discIT2 :: [a] -> MF a -> MF a -> IT2Set a Source

Smart constructor for discrete interval type-2 membership functions. Be wary of domain size.

unsafeMkIT2 :: [a] -> MF a -> MF a -> IT2Set a Source

Only use this if you trust your functions or have no other recourse.

Used in zSlices type-2 defuzzification