Learn R Programming

TUGLab (version 0.0.1)

leastcore: Least core

Description

Given a game, this function computes its least core.

Usage

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

Value

This function returns four outputs:

t

The excess value that defines the least core.

sat

The positions (binary order positions if binary=TRUE; lexicographic order positions otherwise) of the saturated coalitions, as a vector.

x

A least core allocation, as a vector.

vt

The game whose core is the least core of v, as a vector in binary order if binary=TRUE and in lexicographic order otherwise.

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 a number \(\varepsilon \in \mathbb{R}\), the \(\varepsilon\)-core of \(v\) is defined as $$C_{\varepsilon}(v)= \{ x\in \mathbb{R}^n : x(N)=v(N) \text{ and } x(S) \ge v(S)-\varepsilon \ \forall S \in 2^N \setminus \{\emptyset,N\} \},$$ where \(x(S)=\sum_{i\in S} x_i\). The least core of \(v\) is defined as the intersection of all non-empty \(\varepsilon\)-cores of \(v\): $$LC(v) = \{ \bigcap_{\varepsilon \in \mathbb{R} \ : \ C_{\varepsilon}(v) \neq \emptyset} C_{\varepsilon}(v) \}.$$

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.

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

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

See Also

excesses, nucleoluspcvalue, nucleolusvalue, prenucleolusvalue

Examples

Run this code
v <- c(0,0,0,0,10,40,30,60,10,20,90,90,90,130,160)
( vt <- leastcore(v)$vt )
# Plotting the core and the least core of v:
plotcoresets(games = rbind(v,vt), imputations = FALSE)

# What if the game is a cost game?
cost.v <- c(2,2,2,3,4,4,5) # characteristic function of the cost game
-leastcore(-cost.v)$t # the excess value that defines the least core of cost.v
leastcore(-cost.v)$sat # the saturated coalitions
-leastcore(-cost.v)$x # a least core allocation
-leastcore(-cost.v)$vt # the cost game whose core is the least core of cost.v

Run the code above in your browser using DataLab