Learn R Programming

TUGLab (version 0.0.1)

nucleoluspcvalue: Per capita nucleolus

Description

Given a game, this function computes its per capita nucleolus.

Usage

nucleoluspcvalue(v, binary = FALSE, tol = 100 * .Machine$double.eps)

Value

The per capita nucleolus of the game, as a vector.

Arguments

v

A characteristic function, as a vector.

binary

A logical value. By default, binary=FALSE. Should be set to TRUE if v is introduced in binary order instead of lexicographic order.

tol

A tolerance parameter, as a non-negative number.
By default, tol=100*.Machine$double.eps.

Details

Given a game \(v\in G^N\) and an allocation \(x \in I(v)\), the per capita excess of each coalition \(S \in 2^{N}\) with respect to \(x\) is defined as $$e^{p}(v,x,S) = \frac{v(S)-\sum_{i \in S}x_{i}}{|S|}.$$ The per capita excesses of all non-empty coalitions, sorted in non-increasing order, are stored in the per capita excesses vector, \(\theta^{p}(x)\). For any game \(v\in G^N\) with a non-empty set of imputations, the per capita nucleolus is defined as the only imputation \(pcn(v) \in I(v)\) that satisfies \(\theta^{p}(pcn(v))_{i} \leqslant \theta^{p}(y)_{i}\) for each \(i \in \{1,\dots,2^{N}-1\}\) and for all \(y \in I(v)\). This function is programmed following the algorithm of Potters, J.A., et al. (1996).

References

Grotte, J. (1970). Computation of and Observations on the Nucleolus, the Normalized Nucleolus and the Central Games. Master’s thesis), Cornell University, Ithaca.

Potters, J. A., Reijnierse, J. H., & Ansing, M. (1996). Computing the nucleolus by solving a prolonged simplex algorithm. Mathematics of Operations Research, 21(3), 757-768.

See Also

excesses, leastcore, nucleolusvalue, prenucleolusvalue

Examples

Run this code
nucleoluspcvalue(c(1,5,10,6,11,15,16))
nucleoluspcvalue(c(0,0,0,30,30,80,100))

# Computing the per capita nucleolus of a random essential game:
n <- 10 # number of players in the game
v <- c(rep(0,n),runif(2^n-(n+1),min=10,max=20)) # random essential game
nucleoluspcvalue(v)

# What if the game is a cost game?
cost.v <- airfieldgame(c(1,5,10,15)) # cost game
-nucleoluspcvalue(-cost.v) # per capita nucleolus of the cost game

Run the code above in your browser using DataLab