Learn R Programming

TUGLab (version 0.0.1)

prenucleolusvalue: Prenucleolus

Description

Given a game, this function computes its prenucleolus.

Usage

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

Value

The prenucleolus 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\), the excess of coalition \(S \in 2^N\) with respect to \(x\) is defined as \(e(v,x,S)=v(S)-x(S)\), where \(x(S)=\sum_{i\in S} x_i\). Let \(\theta(x)\) be a vector of excesses at \(x\) arranged in non-increasing order. It is said that a vector \(\alpha\) is lexicographically greater than another vector \(\beta\) if \(\alpha \neq \beta\) and the first non-zero coordinate of vector \(\alpha-\beta\) is positive.

The prenucleolus is the set of the efficient allocations that produce a lexicographically minimal vector of excesses. It is always non-empty and it actually comprises a single allocation, which in zero-monotonic games coincides with the nucleolus.

The implementation of this function is based on the algorithm presented in Derks and Kuipers (1997) and on the MATLAB package WCGT2005 by J. Derks.

References

Derks, J. & Kuipers, J. (1997). Implementing the simplex method for computing the prenucleolus of transferable utility games.

Schmeider, D. (1969). The Nucleolus of a Characteristic Function Game. SIAM Journal on Applied Mathematics, 17(6), 1163–1170.

Software by J. Derks (Copyright 2005 Universiteit Maastricht, dept. of Mathematics), available in package MatTuGames,

https://www.shorturl.at/i6aTF.

See Also

excesses, kohlbergcriterion, leastcore, nucleoluspcvalue, nucleolusvalue

Examples

Run this code
prenucleolusvalue(c(0,0,0,0,10,40,30,60,10,20,90,90,90,130,160))
v <- runif(2^6-1, min = 10, max = 20) # random 6-player game
prenucleolusvalue(v)

# The prenucleolus of v must pass the Kohlberg criterion.
# In some cases, though, the tolerance might have to be adjusted
# to avoid numerical error:
kohlbergcriterion(v,prenucleolusvalue(v))
kohlbergcriterion(v,prenucleolusvalue(v),tol=10^(-6))

# What if the game is a cost game?
cost.v <- c(2,2,2,3,4,4,5) # cost game
-prenucleolusvalue(-cost.v) # prenucleolus of the cost game

Run the code above in your browser using DataLab