Type: | Package |
Title: | Tools for Calculating Allocations in Game Theory using Exact and Approximated Methods |
Version: | 1.0.0 |
Description: | The main objective of cooperative games is to allocate a good among the agents involved. This package includes the most well-known allocation rules, i.e., the Shapley value, the Banzhaf value, the egalitarian rule, and the equal surplus division value. In addition, it considers the point of view of a priori unions (situations in which agents can form coalitions). For this purpose, the package includes the Owen value, the Banzhaf-Owen value, and the corresponding extensions of the egalitarian rules. All these values can be calculated exactly or estimated by sampling. |
License: | AGPL (≥ 3) |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
URL: | https://github.com/mariaguilleng/TUvalues |
BugReports: | https://github.com/mariaguilleng/TUvalues/issues |
Imports: | utils, gtools |
NeedsCompilation: | no |
Packaged: | 2025-05-22 16:46:45 UTC; meryg |
Author: | Maria D. Guillen |
Maintainer: | Maria D. Guillen <maria.guilleng@umh.es> |
Repository: | CRAN |
Date/Publication: | 2025-05-22 17:10:02 UTC |
Banzhaf value
Description
Calculate the Banzhaf value
Usage
banzhaf(
characteristic_func,
method = "exact",
n_rep = 10000,
n_players = 0,
replace = FALSE
)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players. |
method |
Method used to calculate the Banzhaf value. Valid methods are:
|
n_rep |
Only used if |
n_players |
Only used if |
replace |
should sampling be with replacement? |
Value
The Banzhaf value for each player
Examples
n <- 8
v <- function(coalition) {
if (length(coalition) > n/2) {
return(1)
} else {
return(0)
}
}
banzhaf(v, method = "exact", n_players = n)
banzhaf(v, method = "appro", n_rep = 2000, n_players = n, replace = TRUE)
v<-c(0,0,0,1,2,1,3)
banzhaf(v, method = "exact")
banzhaf(v, method = "appro", n_rep = 2000, replace = TRUE)
Banzhaf Index (approximated)
Description
Calculate the approximated Banzhaf Index based on sampling
Usage
banzhaf_appro(characteristic_func, n_players, n_rep, replace = TRUE)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
The number of players |
n_rep |
The number of iterations to perform in the approximated calculation |
replace |
should sampling be with replacement? |
Value
The Shapley value for each player
Banzhaf Index (exact)
Description
Calculate the approximated Banzhaf Index
Usage
banzhaf_exact(characteristic_func, n_players)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
The number of players in the game. |
Value
The Banzhaf Index for each player
Banzhaf-Owen value
Description
Calculate the Banzhaf-Owen value
Usage
banzhaf_owen(
characteristic_func,
union,
method = "exact",
n_rep = 10000,
n_players = 0,
replace = TRUE
)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
union |
List of vectors indicating the a priori unions between the players |
method |
Method used to calculate the Owen value. Valid methods are:
|
n_rep |
Only used if |
n_players |
Only used if |
replace |
should sampling be with replacement? |
Value
The Banzhaf-Owen value for each player
Examples
characteristic_func <- c(0,0,0,0,30,30,40,40,50,50,60,70,80,90,100)
union <- list(c(1,3),c(2),c(4))
banzhaf_owen(characteristic_func, union)
banzhaf_owen(characteristic_func, union, method = "appro", n_rep = 4000)
Banzhaf-Owen Value
Description
Calculate the approximated Banzhaf-Owen value
Usage
banzhaf_owen_appro(characteristic_func, union, n_players, n_rep, replace)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
union |
List of vectors indicating the a priori unions between the players |
n_players |
The number of players |
n_rep |
Only used if |
replace |
should sampling be with replacement? |
Value
The Banzhaf-Owen Index for each player
Banzhaf-Owen Value
Description
Calculate the approximated Banzhaf-Owen value
Usage
banzhaf_owen_exact(characteristic_func, union, n_players)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
union |
List of vectors indicating the a priori unions between the players |
n_players |
The number of players in the game. |
Value
The Banzhaf Index for each player
coalitions
Description
Create all the possible coalitions given the number of players
Usage
coalitions(n_players)
Arguments
n_players |
Number of players |
Value
A list containing a data.frame
of the binary representation
of the coalitions and a vector
of the classical representation (as
sets) of the coalitions
Egalitarian value
Description
Calculate the egalitarian value
Usage
egalitarian(characteristic_func, n_players = 0)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
Only used if |
Value
The egalitarian value for each player
Examples
n <- 10
v <- function(coalition) {
if (length(coalition) > n/2) {
return(1)
} else {
return(0)
}
}
egalitarian(v,n)
Equal Surplus Division value
Description
Calculate the equal surplus division value
Usage
equal_surplus_division(characteristic_func, n_players = 0)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
Only used if |
Value
The equal surplus division value for each player
Examples
n <- 10
v <- function(coalition) {
if (length(coalition) > n/2) {
return(1)
} else {
return(0)
}
}
equal_surplus_division(v,n)
Owen value
Description
Calculate the Owen value
Usage
owen(
characteristic_func,
union,
method = "exact",
n_rep = 10000,
n_players = 0
)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players. |
union |
List of vectors indicating the a priori unions between the players. |
method |
Method used to calculate the Owen value. Valid methods are:
|
n_rep |
Only used if |
n_players |
The number of players in the game. |
Value
The Owen value for each player.
Examples
n <- 10
v <- function(coalition) {
if (length(coalition) > n/2) {
return(1)
} else {
return(0)
}
}
u <- lapply(1:(n/2), function(i) c(2*i - 1, 2*i))
owen(v, union = u, method = "appro", n_rep = 4000, n_players = n)
characteristic_func <- c(1,1,2,1,2,2,2)
union <- list(c(1,2),c(3))
owen(characteristic_func, union)
owen(characteristic_func, union, method = "appro", n_rep = 4000)
Owen value (approximation)
Description
Calculate the approximated Owen value based on sampling
Usage
owen_appro(characteristic_func, union, n_players, n_rep)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
union |
List of vectors indicating the a priori unions between the players |
n_players |
The number of players |
n_rep |
The number of iterations to perform in the approximated calculation |
Value
The Owen value for each player
Owen value (exact)
Description
Calculate the exact Owen
Usage
owen_exact(characteristic_func, union, n_players = NULL)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
union |
List of vectors indicating the a priori unions between the players |
n_players |
The number of players |
Value
The Owen value for each player
Predecessor
Description
Given a permutation 0 of players and a player i, calculate the set of predecessors of the player i in the order 0
Usage
predecessor(permutation, player, include_player = FALSE)
Arguments
permutation |
A permutation of the players |
player |
Number of the player i |
include_player |
Whether the player i is included as predecessor of itself or not |
Value
The set of predecessors of the player i in the order 0
Shapley value
Description
Calculate the Shapley value
Usage
shapley(characteristic_func, method = "exact", n_rep = 10000, n_players = 0)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players. |
method |
Method used to calculate the Shapley value. Valid methods are:
|
n_rep |
Only used if |
n_players |
Only used if |
Value
The Shapley value for each player.
Examples
n <- 10
v <- function(coalition) {
if (length(coalition) > n/2) {
return(1)
} else {
return(0)
}
}
shapley(v, method = "appro", n_rep = 4000, n_players = n)
n <- 3
v <- c(1,1,2,1,2,2,2)
shapley(v, method = "exact")
shapley(v, method = "appro", n_rep = 4000)
Shapley value (approximation)
Description
Calculate the approximated Shapley value based on sampling
Usage
shapley_appro(characteristic_func, n_players, n_rep)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
The number of players |
n_rep |
The number of iterations to perform in the approximated calculation |
Value
The Shapley value for each player
Shapley value (exact)
Description
Calculate the exact Shapley value
Usage
shapley_exact(characteristic_func, n_players)
Arguments
characteristic_func |
The valued function defined on the subsets of the number of players |
n_players |
The number of players |
Value
The Shapley value for each player