fuzzySets-1.0.0: Library for constructing and manipulating fuzzy sets and fuzzy relations.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Fuzzy.Relations.LRelation

Synopsis

Documentation

data (ResiduatedLattice l, Eq a) => LRelation a l Source #

Binary L relation is a fuzzy set on a universe of pairs

Constructors

LRelation ((a, a) -> l) ![(a, a)] 

Instances

Instances details
(Eq a, Show a, Show l, ResiduatedLattice l) => Show (LRelation a l) Source # 
Instance details

Defined in Fuzzy.Relations.LRelation

Methods

showsPrec :: Int -> LRelation a l -> ShowS

show :: LRelation a l -> String

showList :: [LRelation a l] -> ShowS

(Eq a, ResiduatedLattice l) => FuzzySet (LRelation a l) (a, a) l Source # 
Instance details

Defined in Fuzzy.Relations.LRelation

Methods

mkFuzzySet :: ((a, a) -> l) -> [(a, a)] -> LRelation a l Source #

member :: LRelation a l -> (a, a) -> l Source #

universe :: LRelation a l -> [(a, a)] Source #

truthDegrees :: LRelation a l -> [l] Source #

universeCardinality :: LRelation a l -> Int Source #

class (ResiduatedLattice l, Eq a) => FuzzySet set a l | set -> a l where Source #

Type class defines the basic behavior for a fuzzy set

Minimal complete definition

mkFuzzySet, member, universe

Methods

mkFuzzySet :: (a -> l) -> [a] -> set Source #

member :: set -> a -> l Source #

membership function

universe :: set -> [a] Source #

truthDegrees :: set -> [l] Source #

universeCardinality :: set -> Int Source #

Instances

Instances details
(ResiduatedLattice l, Eq a) => FuzzySet (LSet a l) a l Source # 
Instance details

Defined in Fuzzy.Sets.LSet

Methods

mkFuzzySet :: (a -> l) -> [a] -> LSet a l Source #

member :: LSet a l -> a -> l Source #

universe :: LSet a l -> [a] Source #

truthDegrees :: LSet a l -> [l] Source #

universeCardinality :: LSet a l -> Int Source #

(Eq a, ResiduatedLattice l) => FuzzySet (LRelation a l) (a, a) l Source # 
Instance details

Defined in Fuzzy.Relations.LRelation

Methods

mkFuzzySet :: ((a, a) -> l) -> [(a, a)] -> LRelation a l Source #

member :: LRelation a l -> (a, a) -> l Source #

universe :: LRelation a l -> [(a, a)] Source #

truthDegrees :: LRelation a l -> [l] Source #

universeCardinality :: LRelation a l -> Int Source #

fromList :: (ResiduatedLattice l, Eq a) => [((a, a), l)] -> LRelation a l Source #

Construct a fuzzy relation from a list of pairs

fromFuzzySet :: (FuzzySet f (a, a) l, ResiduatedLattice l, Eq a) => f -> LRelation a l Source #

Construct a fuzzy relation from a fuzzy set

Examples

Expand
>>> let fuzzySet = fromPairs [((1, 2), 0.5), ((2, 3), 0.8)] :: LSet (Int, Int) UILukasiewicz
>>> let rel = fromFuzzySet fuzzySet
>>> rel
"LRelation {Memberships: [((1,2),0.5),((2,3),0.8)]}"

fromFunction :: (ResiduatedLattice l, Eq a) => ((a, a) -> l) -> [a] -> LRelation a l Source #

Construct a fuzzy relation from a membership function and a universe

Examples

Expand
>>> let f (x, y) = if x < y then 0.7 else 0.3
>>> let rel = fromFunction f [(1, 2), (2, 3), (3, 1)] :: LRelation Int UILukasiewicz
>>> toPairs rel
[((1,2),0.7),((2,3),0.7),((3,1),0.3)]

mkEmptyRel :: (ResiduatedLattice l, Eq a) => LRelation a l Source #

Construct an empty fuzzy relation

Examples

Expand
>>> let emptyRel = mkEmptyRel :: LRelation Int UILukasiewicz
>>> toPairs emptyRel
[]

mkSingletonRel :: (ResiduatedLattice l, Eq a) => [a] -> ((a, a), l) -> LRelation a l Source #

Construct a singleton fuzzy relation

Examples

Expand
>>> let singletonRel = mkSingletonRel [(1, 2), (2, 3)] ((1, 2), 0.8) :: LRelation Int UILukasiewicz
>>> toPairs singletonRel
[((1, 2), 0.8),((2, 3), 0.0)]

mkUniversalRel :: (ResiduatedLattice l, Eq a) => [a] -> LRelation a l Source #

Construct a universal fuzzy relation

Examples

Expand
>>> let universalRel = mkUniversalRel [(1, 2), (2, 3)] :: LRelation Int UILukasiewicz
>>> toPairs universalRel
[((1, 2), 1.0),((2, 3), 1.0)]

toPairs :: (ResiduatedLattice l, Eq a) => LRelation a l -> [((a, a), l)] Source #

Return relation as a list of pairs