Learn R Programming

multiplex (version 3.7)

semiring: Semiring Structures for Balance Theory

Description

A function to construct semiring structures for the analysis of Structural Balance theory.

Usage

semiring(x, type = c("balance", "cluster"), symclos = TRUE,
         transclos = TRUE, k = 2, lbs)

Value

An object of ‘Semiring’ class. The items included are:

val

the valences in the semiring

s

the original semiring structure

Q

the resulted semiring structure

k

the number of cycles or semicycles

Arguments

x

an object of a ‘Signed’ class

type

  • balance for a balance semiring (default)

  • cluster for a cluster semiring

symclos

(logical) apply symmetric closure?

transclos

(logical) apply transitive closure?

k

length of the cycle or the semicycle

lbs

(optional) labels for the semiring output

Author

Antonio Rivero Ostoic

Details

Semiring structures are based on signed networks, and this function provides the capabilities to handle either the balance semiring or the cluster semiring within the Structural Balance theory.

A semiring combines two different kinds of operations with a single underlying set, and it can be seen as an abstract semigroup with identity under multiplication and a commutative monoid under addition. Semirings are useful to determine whether a given signed network is balanced or clusterable. The symmetric closure evaluates this by looking at semicycles in the system; otherwise, the evaluation is through closed paths.

References

Harary, F, Z. Norman, and D. Cartwright Structural Models: An Introduction to the Theory of Directed Graphs. Wiley. 1965.

Doreian, P., V. Batagelj and A. Ferligoj Generalized Blockmodeling. Cambridge University Press. 2004.

Ostoic, J.A.R. “Creating context for social influence processes in multiplex networks.” Network Science, 5(1), 1-29.

See Also

signed, as.signed

Examples

Run this code
# create the data: two sets with a pair of binary relations 
# among three elements
arr <- round( replace( array( runif(18), c(3 ,3, 2) ), array( runif(18),
       c(3, 3, 2) ) > .5, 3 ) )

# make the signed matrix with two types of relations
# and establish the semiring structure
signed(arr) |> 
  semiring()

Run the code above in your browser using DataLab