Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Fuzzy.Relations.LRelation
Synopsis
- data (ResiduatedLattice l, Eq a) => LRelation a l = LRelation ((a, a) -> l) ![(a, a)]
- class (ResiduatedLattice l, Eq a) => FuzzySet set a l | set -> a l where
- mkFuzzySet :: (a -> l) -> [a] -> set
- member :: set -> a -> l
- universe :: set -> [a]
- truthDegrees :: set -> [l]
- universeCardinality :: set -> Int
- fromList :: (ResiduatedLattice l, Eq a) => [((a, a), l)] -> LRelation a l
- fromFuzzySet :: (FuzzySet f (a, a) l, ResiduatedLattice l, Eq a) => f -> LRelation a l
- fromFunction :: (ResiduatedLattice l, Eq a) => ((a, a) -> l) -> [a] -> LRelation a l
- mkEmptyRel :: (ResiduatedLattice l, Eq a) => LRelation a l
- mkSingletonRel :: (ResiduatedLattice l, Eq a) => [a] -> ((a, a), l) -> LRelation a l
- mkUniversalRel :: (ResiduatedLattice l, Eq a) => [a] -> LRelation a l
- toPairs :: (ResiduatedLattice l, Eq a) => LRelation a l -> [((a, a), l)]
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
(Eq a, Show a, Show l, ResiduatedLattice l) => Show (LRelation a l) Source # | |
(Eq a, ResiduatedLattice l) => FuzzySet (LRelation a l) (a, a) l 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
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
(ResiduatedLattice l, Eq a) => FuzzySet (LSet a l) a l Source # | |
(Eq a, ResiduatedLattice l) => FuzzySet (LRelation a l) (a, a) l 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
>>>
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
>>>
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
>>>
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
>>>
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
>>>
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