Learn R Programming

poseticDataAnalysis (version 1.0.0)

BuildBubleyDyerSeparationGenerator: Generator of an approximated separation matrix.

Description

Creates an object of S4 class BubleyDyerSeparationGenerator for the computation of approximated separation matrices, starting from a set of random linear extensions, sampled according to the Bubley-Dyer procedure (see Bubley and Dyer, 1999) Actually, this function does not compute the separation matrices, but just the object that will compute them, by using function BubleyDyerSeparation.

Usage

BuildBubleyDyerSeparationGenerator(poset, seed, type, ...)

Value

An object of S4 class BubleyDyerSeparationGenerator.

Arguments

poset

Object of S4 class POSet representing the poset whose separation matrices are to be computed. Argument poset must be created by using any function contained in the package aimed at building object of S4 class POSet (e.g. POSet(), LinearPOSet(), ProductPOSet(), ...) .

seed

Positive integer to initialize the random linear extension generation.

type

type of separation to be computed. Possible choices are: "symmetric", "asymmetricLower", "asymmetricUpper", "vertical", "horizontal".

...

additional types of separations to be computed. Possible choices are: "symmetric", "asymmetricLower", "asymmetricUpper", "vertical", "horizontal".

Details

The symmetric separation associated to elements \(a\) and \(b\) in the input poset is the average absolute difference between the positions of \(a\) and \(b\) observed in the sampled linear extensions (whose elements are arranged in ascending order):

\(Sep_{ab}=\frac{1}{n}\sum_{i^1}^{n}|Pos_{l_i}(a)-Pos_{l_i}(b)|\),

where \(n\) is the numbers of sampled linear extensions; \(l_i\) represents a sampled linear extension and \(Pos_{l_i}(\cdot)\) stands for the position of element \(\cdot\) into the sequence of poset elements arranged in increasing order according to \(l_i\).

Asymmetric lower and upper separations are defined as: \(Sep_{a < b}=\frac{1}{n}\sum_{i^1}^{n}(Pos_{l_i}(b)-Pos_{l_i}(a))\mathbb{1}(a <_{l_i} b)\), \(Sep_{b < a}=\frac{1}{n}\sum_{i^1}^{n}(Pos_{l_i}(a)-Pos_{l_i}(b))\mathbb{1}(b <_{l_i} a)\), where \(a\leq_{l_i} b\) means that \(a\) is lower or equal to \(b\) in the linear order defined by linear extension \(l_i\) and \(\mathbb{1}\) is the indicator function. Note that \(Sep_{ab}=Sep_{a < b}+Sep_{a < b}\).

Vertical and horizontal separations (\(vSep\) and \(hSep\), respectively) are defined as

\(vSep_{ab}=|Sep_{a < b}-Sep_{b < a}|\) and #' \(hSep_{ab}=Sep_{ab}-vSep_{ab}|\).

For a detailed explanation on why \(vSep\) and \(hSep\) can be interpreted as vertical and horizontal components of the separation between two poset elements, see Fattore et. al (2024).

References

Bubley, R., Dyer, M. (1999). Faster random generation of linear extensions. Discrete Mathematics, 201, 81-88. https://doi.org/10.1016/S0012-365X(98)00333-1

Fattore, M., De Capitani, L., Avellone, A., and Suardi, A. (2024). A fuzzy posetic toolbox for multi-criteria evaluation on ordinal data systems. Annals of Operations Research, https://doi.org/10.1007/s10479-024-06352-3.

Examples

Run this code
el <- c("a", "b", "c", "d")

dom <- matrix(c(
  "a", "b",
  "c", "b",
  "b", "d"
), ncol = 2, byrow = TRUE)

pos <- POSet(elements = el, dom = dom)

BDgen <- BuildBubleyDyerSeparationGenerator(pos, seed = NULL,
              type="symmetric", "asymmetricUpper", "vertical")

Run the code above in your browser using DataLab