Safe Haskell | Safe-Inferred |
---|---|

Language | Haskell2010 |

- data T2ZSet a
- class Fuzzy a where
- class FSet a where
- contZT2 :: (Enum a, Num a) => a -> a -> a -> [IT2Set a] -> T2ZSet a
- discZT2 :: [a] -> [IT2Set a] -> T2ZSet a
- unsafeZT2 :: [a] -> [IT2Set a] -> T2ZSet a
- cylExtT2 :: T1Set Double -> Int -> T2ZSet Double
- mkT2Tri :: (Double, Double) -> (Double, Double) -> (Double, Double) -> Int -> T2ZSet Double
- zLevelAxis :: Int -> [Double]

# Documentation

A zSlices based type-2 set requires the number of z levels, and a list of zslices.

FSet (T2ZSet a) | Currently the most complex supported fuzzy set. |

Fuzzy (T2ZSet a) | Operations on zSlices fuzzy sets are simply defined as higher order funcitons over the list of zSlices. |

Defuzzifier (T2ZSet Double) | |

FRule (T2ZSet Double) | In zSlices type-2 fuzzy sets, both implicators are the same. |

type Value (T2ZSet a) = a | |

type Support (T2ZSet a) = [(a, a)] | |

type Returned (T2ZSet a) = MF Double | |

type Result (T2ZSet Double) = T1Set Double | |

type Antecedent (T2ZSet Double) = T1Set Double |

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.

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

Union over fuzzy values.

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

Intersection over fuzzy values.

Fuzzy complement.

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. |

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.

A single value of the domain.

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

Degree of membership from applying a value to membership function.

contZT2 :: (Enum a, Num a) => a -> a -> a -> [IT2Set a] -> T2ZSet a Source

Smart constructor for continuous type-2 fuzzy membership functions. Works only on the base interval set, make sure you trust your zSlices.

discZT2 :: [a] -> [IT2Set a] -> T2ZSet a Source

Smart constructor for discrete type-2 fuzzy membership functions. Works only on the base interval set, make sure you trust your zSlices.

unsafeZT2 :: [a] -> [IT2Set a] -> T2ZSet a Source

Unsafe constructor, only use if you trust your membership functions or domain is very large.

mkT2Tri :: (Double, Double) -> (Double, Double) -> (Double, Double) -> Int -> T2ZSet Double Source

Constructor for triangular type-2 fuzzy set. Arguements are pairs of points for defining a base Interval type-2 fuzzy set. The left element of each pair is for the lower membership function, The right element is for the upper membership function, Order is: left corner, peak, right corner. Int is number of zSlices desired, the level of discretisation.

zLevelAxis :: Int -> [Double] Source