Learn R Programming

TUGLab (version 0.0.1)

balancedcheck: Balanced check

Description

This function checks if the given game is balanced and computes its balanced cover.

Usage

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

Value

TRUE if the game is balanced, FALSE otherwise. If game=TRUE, the balanced cover of the game is also returned.

Arguments

v

A characteristic function, as a vector.

game

A logical value. By default, game=FALSE. If set to TRUE, the balanced cover of the game is also returned.

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

Let \(v \in G^{N}\). A family \(F\) of non-empty coalitions of \(N\) is balanced if there exists a weight family \(\delta^{F} = \{ \delta^{F}_{S} \}_{S \in F}\) such that \(\delta^{F}_{S} > 0\) for each \(S \in F\) and \(\sum_{S \in F} \delta^{F}_{S} e^{S} = e^{N}\), being \(e^{S}\) the characteristic vector of \(S\), that is, the vector \((e_{i}^{S})_{i \in N}\) in which \(e_{i}^{S}=1\) if \(i \in S\) and \(e_{i}^{S}=0\) if \(i \notin S\)).

The game \(v\) is balanced if, for each balanced family \(F\), it is true that $$\sum_{S \in F} \delta^{F}_{S} v(S) \leq v(N).$$

The balanced cover of \(v\) is the game \(\tilde{v}\) defined by \(\tilde{v}(S)=v(S)\) for all \(S \neq N\) and $$\tilde{v}(N) = \max_{\delta \in P}{\sum_{S \subset N} \delta_{S} v(S)},$$ being \(P\) the set of the weight families associated with the balanced families of \(N\).

A game is balanced if and only if it coincides with its balanced cover. By the Bondareva-Shapley Theorem, a game has a non-empty core if and only if it is balanced.

References

Maschler, M., Solan, E., & Zamir, S. (2013). Game Theory. Cambridge University Press.

See Also

totallybalancedcheck

Examples

Run this code
balancedcheck(c(12,10,20,20,50,70,70), game=TRUE)
balancedcheck(c(rep(0,4), rep(30,6), rep(0,4), 50))
v <- runif(2^3-1,0,10) # random three-player game
balancedcheck(v, game=TRUE)
balancedcheck(balancedcheck(v, game=TRUE)$game) # balanced cover is indeed balanced
balancedcheck(runif(2^(15)-1,min=10,max=20)) # random game

Run the code above in your browser using DataLab