library(Deducer)
n.players <- 17
weight <- c(84,92,22,12,12,15,11,22,16,1,12,15,26,20,9,29,4)
quota <- sum(weight)/2+1
p <-n.players
n.cases <-factorial(p)
tab <- perm(1:p)
critical <- rep(0,n.cases)
for (i in 1:n.cases){
weight.sum <- cumsum(weight[tab[i,]])
critical[i] <- tab[i,which.max(weight.sum >= quota)]
}
table(critical)
power <- table(critical)/n.cases
round(power,3)
- このコードには「Deducer」パッケージが必要です。コードを入力する前に、「install.packages("Deducer")」というメッセージを入力してください。
Shapley Shubik 指数の詳細については、「http://en.wikipedia.org/wiki/Shapley%E2%80%93Shubik_power_index」を参照してください。
この場合、コードが大きなサンプルに基づいているため、エラー メッセージが表示されます。次の2つの方法で問題を解決したい:
自分のパソコンの許す限りのケースを計算し(5年前に買ったパソコンです。当時はあまり性能が高くありませんでした)、処理時間を調べます(簡単です。手続き「proc.time」を使うだけです)。 ")
モンテカルロを使って指数を近似したいのですが、この場合の処理時間も調べています。
さらに、way1 と way2 のインデックスと処理時間を比較したいと思います。
どうすればこれを解決できますか? (計算用メモリの制限を大きくするパッケージが見当たりません。理論的にモンテカルロの初歩レベルを知っていても、その仕組みをRコードに適用することはできません)