prenucleolusvalue {TUGLab} | R Documentation |
Prenucleolus
Description
Given a game, this function computes its prenucleolus.
Usage
prenucleolusvalue(v, binary = FALSE, tol = 100 * .Machine$double.eps)
Arguments
v |
A characteristic function, as a vector. |
binary |
A logical value. By default, |
tol |
A tolerance parameter, as a non-negative number. |
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.
Value
The prenucleolus of the game, as a vector.
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
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