Calculate the Shapley valueΒΆ
To find the Shapley value for a game \(G=(N, v)\)
use
coopgt.shapley_value.calculate
.
For example for \(G=(3, v)\):
\[\begin{split}v(C)=\begin{cases}
0,&\text{if }C=\emptyset\\
6,&\text{if }C=\{1\}\\
12,&\text{if }C=\{2\}\\
42,&\text{if }C=\{3\}\\
12,&\text{if }C=\{1,2\}\\
42,&\text{if }C=\{2,3\}\\
42,&\text{if }C=\{1,2,3\}\\
\end{cases}\end{split}\]
First create the characteristic function:
>>> characteristic_function = {
... (): 0,
... (1,): 6,
... (2,): 12,
... (3,): 42,
... (1, 2): 12,
... (1, 3): 42,
... (2, 3): 42,
... (1, 2, 3): 42,
... }
Then:
>>> import coopgt.shapley_value
>>> coopgt.shapley_value.calculate(characteristic_function=characteristic_function)
array([ 2., 5., 35.])