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

Safe HaskellSafe-Inferred
LanguageHaskell2010

Huzzy.TypeTwo.ZSlices.Sets

Synopsis

Documentation

data T2ZSet a Source

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

Instances

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 

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.

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.

cylExtT2 :: T1Set Double -> Int -> T2ZSet Double Source

Used in defuzzification.

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.