multihierarchicalrules: Overview of the allocation rules according to the agents'...

View source: R/multihierarchicalrules.R

multihierarchicalrulesR Documentation

Overview of the allocation rules according to the agents' hierarchical order

Description

multihierarchicalrules calculates the contribution vectors resulting from the allocation of payments among different agents, applying various predefined rules in relation to the agents' hierarchical order. It also generates a graphical representation of the allocations based on the implemented rules.

Usage

multihierarchicalrules(
  c,
  P,
  rules = c("SFC", "SEC", "CEC", "CEB", "CP", "SM", "CC", "SIGMA"),
  a = NULL,
  draw = TRUE,
  col = NULL,
  agents_names = NULL,
  labels = TRUE
)

Arguments

c

A numeric cost vector.

P

A list showing the agents involved in the different distribution stages.

rules

A character vector specifying the allocation rules. The available rules are: "SFC", "SEC", "CEC", "CP", "CEB", "SM", "CC" and "SIGMA". By default, all the rules are selected.

a

A numeric value in the range [0,1], controlling the parameterization of the rule. It can only be defined when "SIGMA" is included in rules. By default, a = 0.5.

draw

A logical value indicating whether the plot should be generated. By default, draw = TRUE.

col

A vector that indicates the colors used to represent each agent in the graphical representation. By default, the colors are selected by the function rainbow().

agents_names

A vector defining the name assigned to each agent. By default, the names follow a sequence of natural numbers, starting from 1.

labels

A logical value indicating whether the labels and the title of the plot should be displayed. By default, labels = TRUE.

Details

Let N=\{1,\dots,n\} be a finite set of agents and let P=\{P_1,\dots,P_{m+1}\} be a partition of N, with m\leq n-1. So, the hierarchical structure, P_{>}=\{P_1>P_2>\dots>P_m>P_{m+1}\}, implies that agents in P_1 have priority over agents in N\backslash P_1, agents in P_2 have priority over agents in N\backslash P_1\cup P_2, and so on. Let \mathcal{P}(N) denote the family of all hierarchical structures over N.

A hierarchical rule is a mapping \mathcal{R}_P:C^N\rightarrow \mathbb{R}^N that, based on a hierarchical structure P_{>}, associates with each problem c\in C^N a cost allocation vector \mathcal{R}_P(c) such that 0\leq\mathcal{R}_P(c)\leq c. In other words, the allocation proceeds by assigning costs to agents in higher-hierarchy coalitions before those in lower-hierarchy ones, through the successive application of the rule to the no-subsidy faces of coalitions obtained from P_{>}. These rules are on the boundary of the no-subsidy set.

In each stage, the agents share the accumulated costs up to that point. However, the remaining costs are allocated in subsequent stages.

Value

A data frame containing the contribution vectors determined by the selected allocation rules. Additionally, if draw = TRUE, a mosaic plot displaying the allocations obtained for the different rules.

References

Bernárdez Ferradás, A., Mirás Calvo, M. Á., Quinteiro Sandomingo, C., and Sánchez-Rodríguez, E. (2025). Airport problems with cloned agents. [Preprint manuscript].

Faigle, U. and Kern, W. (1992). The Shapley value for cooperation games under precedence constraints. International Journal of Game Theory, 21, 249-266.

Fiestras-Janeiro, M. G., Sánchez-Rodríguez, E., and Schuster, M. (2016). A precedence constraint value revisited. TOP, 24, 156-179.

Mirás Calvo, M. Á., Quinteiro Sandomingo, C., and Sánchez-Rodríguez, E. (2020). The boundary of the core of a balanced game: faces games. International Journal of Game Theory, 49(2), 579-599.

See Also

NSfaces, PRIORrule, basicrule, comparisonallocations, plotallocations

Examples

# All rules in two stages with graphical representation
c <- c(1, 3, 3, 7, 10) # Cost vector
P <- list(c(1, 2, 3), c(4, 5)) # Agents' hierarchical order
multihierarchicalrules(c, P)

# SEC, CEC and SM rule in three stages without plot
c <- c(5, 10, 20, 20, 30, 50) # Cost vector
P <- list(c(1, 2), c(3, 4), c(5, 6)) # Agents' hierarchical order
multihierarchicalrules(c, P, rules = c("SEC", "CEC", "SM"), draw = FALSE,
agents_names = c("Alex", "Estela", "Carmen", "Miguel", "Gloria", "Brais"))


AirportProblems documentation built on June 8, 2025, 10:49 a.m.