Learn R Programming

lfl (version 2.2.0)

sugeno: A factory function for creation of sugeno-integrals.

Description

A factory function for creation of sugeno-integrals.

Usage

sugeno(
  measure,
  relative = TRUE,
  strong = FALSE,
  alg = c("lukasiewicz", "goedel", "goguen")
)

Value

A two-argument function, which expects two numeric vectors of equal length (the vector elements are recycled to ensure equal lengths). The first argument, x, is a vector of membership degrees to be measured, the second argument, w, is the vector of weights.

Let \(U\) be the set of input vector indices (1 to length(x)). Then the sugeno integral computes the truth values accordingly to the following formula: \(\vee_{z \subseteq U} \wedge_{u \in z} (x[u]) CONJ measure(m_z)\), where \(m_z = sum(w[z]) / sum(w)\) if relative==TRUE or \(m_z = sum(w)\) if relative==FALSE

and where CONJ is a strong conjunction (i.e. alg$pt) or a weak conjunction (i.e. alg$pi) accordingly to the strong parameter.

Arguments

measure

A non-decreasing function that assigns a truth value from the \([0, 1]\) interval to the either relative or absolute quantity

relative

Whether the measure assumes relative or absolute quantity. Relative quantity is always a number from the \([0,1]\) interval

strong

Whether to use the strong conjunction (TRUE) or the weak conjunction (FALSE)

alg

The underlying algebra must be either a string (one from 'lukasiewicz', 'goedel' or 'goguen') or an instance of the S3 class algebra().

Author

Michal Burda

See Also

quantifier(), lingexpr()

Examples

Run this code
  # Dvorak <1> "almost all" quantifier
  q <- sugeno(lingexpr(ctx3(), atomic='bi', hedge='ex'))
  a <- c(0.9, 1, 1, 0.2, 1)
  q(x=a, w=1)

  # Dvorak <1,1> "almost all" quantifier
  a <- c(0.9, 1, 1, 0.2, 1)
  b <- c(0.2, 1, 0, 0.5, 0.8)
  q <- sugeno(lingexpr(ctx3(), atomic='bi', hedge='ex'))
  q(x=lukas.residuum(a, b), w=1)

  # Murinová <1,1> "almost all" quantifier
  a <- c(0.9, 1, 1, 0.2, 1)
  b <- c(0.2, 1, 0, 0.5, 0.8)
  q <- sugeno(lingexpr(ctx3(), atomic='bi', hedge='ex'))
  q(x=lukas.residuum(a, b), w=a)

Run the code above in your browser using DataLab