0
0

More than 1 year has passed since last update.

更に pagepank で じゃんけん と トランプ と 軍人将棋 をやってみた

Posted at

はじめに

前回の記事を投稿後、Ruby版networkxに携わることがあったので、更にやってみた。

じゃんけん

require_relative 'lib/networkX'

h = {
  1 => [2],
  2 => [3],
  3 => [1]
}
g = NetworkX::DiGraph.new
h.each do |k, v|
  v.each do |ve|
    g.add_edge(ve - 1, k - 1)
  end
end
puts NetworkX.pagerank(g)

# output
0.3333333
0.3333333
0.3333333

じゃんけんは三つ巴ですので、同じ得点になります。

トランプ

h = {
  1 => [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
  2 => [1],
  3 => [2],
  4 => [2, 3],
  5 => [2, 3, 4],
  6 => [2, 3, 4, 5],
  7 => [2, 3, 4, 5, 6],
  8 => [2, 3, 4, 5, 6, 7],
  9 => [2, 3, 4, 5, 6, 7, 8],
  10 => [2, 3, 4, 5, 6, 7, 8, 9],
  11 => [2, 3, 4, 5, 6, 7, 8, 9, 10],
  12 => [2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
  13 => [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
}

要素hのみ表示しております。

index 絵柄 得点
1 A 0.2160026
2 2 0.0769230
3 3 0.0222672
4 4 0.0389576
5 5 0.0408504
6 6 0.0445303
7 7 0.0488713
8 8 0.0542792
9 9 0.0612033
10 10 0.0704314
11 J 0.0834375
12 Q 0.1033930
13 K 0.1388527

トランプのルールとして、数の大きい方が勝ちとしますが、Aのみ2を除くすべての数に勝ちます。
すると、Aの得点が一番大きいのですが、2の得点が10より大きく算出されています。

軍人将棋

h = {
  1 => [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15],
  2 => [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
  3 => [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
  4 => [5, 6, 7, 8, 9, 12, 13, 14, 15],
  5 => [6, 7, 8, 9, 12, 13, 14, 15],
  6 => [7, 8, 9, 12, 13, 14, 15],
  7 => [8, 9, 12, 13, 14, 15],
  8 => [9, 12, 13, 14, 15],
  9 => [12, 13, 14, 15],
  10 => [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15],
  11 => [4, 5, 6, 7, 8, 9, 12, 14, 15],
  12 => [13, 14, 15],
  13 => [11, 14, 15],
  14 => [1, 15],
  15 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14]
}
index 絵柄 得点
1 大将 0.1585483
2 中将 0.1036655
3 少将 0.0807769
4 大佐 0.0485714
5 中佐 0.0433120
6 少佐 0.0391522
7 大尉 0.0357737
8 中尉 0.0329713
9 少尉 0.0306064
10 飛行機 0.0629422
11 戦車 0.0528652
12 騎兵 0.0285820
13 工兵 0.0334844
14 スパイ 0.0575546
15 地雷 0.1911934

軍人将棋に馴染みのない方もいらっしゃると思いますが、引き分けを双方向のエッジとしています。
予想通り、飛行機スパイの得点が高いです。

勿論、ここでは移動能力(地雷は動かない、飛行機は飛び越せる等)を評価していないです。

後、一般的な将棋の場合、手番のある方が勝つ(駒をとれる)ので、pagerankの手法ですと得点がすべて同じになるため、別の手法が必要になると思われます。

まとめ

  • pegerank に更に詳しくなった
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0