semigroup: Semigroup of Relations for Multiple Networks

semigroupR Documentation

Semigroup of Relations for Multiple Networks

Description

Function to create the complete semigroup of multiple relations, where the multiplication table can be specified with either a numerical or a symbolic form.

Usage

semigroup(x, type = c("numerical", "symbolic"), cmps, smpl, valued)

Arguments

x

Array with three dimensions of stacked matrices with generating relations.

type

Semigroup multiplication table to return:

  • numerical format (default)

  • symbolic format

cmps

(optional and logical) Include composite matrices in output?

smpl

(optional and logical) Simplify strings of relations?

valued

(optional and logical) Is the semigroup of a valued format?

Details

A multiple relation can be defined by square matrices of 0s and 1s indicating the presence and absence of ties among a set of actors. If there is more than one relation type, the matrices must preserve the label ordering of its elements and stacked into an object array in order to be effectively applied to this function.

The semigroup, which is an algebraic structure having a set with an associative operation on it, is calculated considering binary matrices only. This means that if the provided matrices are valued, the function will dichotomise the input data automatically. Values higher or equal to a unit are converted to one; otherwise they are set to zero. For other values use function dichot to specify a cutoff value for the dichotomization.

Semigroup structures for valued relations apply the max min operation in the composition of generators and strings, and depend on function cscl.

Value

A ‘Semigroup’ class object with items:

gens

Array with generator relations

cmps

Array with the unique compound relations

ord

Dimension of the semigroup

st

Vector of unique string relations

S

Multiplication matrix with semigroup of relations (numerical or symbolic)

If the specified type is numerical, then a matrix of semigroup values is given; otherwise the values is returned as a data frame with the strings of the semigroup.

Warning

Computing for the semigroup construction can take very long time for medium size or bigger sets (e.g. having more than 4 relation types).

References

Boorman, S.A. and H.C. White, “Social Structure from Multiple Networks. II. Role Structures.” American Journal of Sociology, 81 (6), 1384-1446. 1976.
Boyd, J.P. Social Semigroups. A unified theory of scaling and blockmodelling as applied to social networks. George Mason University Press. 1991.
Pattison, P.E. Algebraic Models for Social Networks. Cambridge University Press. 1993.

See Also

green.rel, strings, edgeT, wordT, cngr, cscl

Examples

# create two binary relations among three elements
arr <- round( replace( array( runif(18), c(3 ,3, 2) ), array( runif(18),
       c(3, 3, 2) ) > .9, 3 ) )

# optionally put labels
dimnames(arr)[[3]] <- list("n", "m")

# look at the semigroup with numerical format
semigroup(arr)

multiplex documentation built on July 30, 2026, 5:13 p.m.