会津合宿2015day3:b問題

11
2015/09/23 会津大学競技プロ合宿 day3 B 1 B:Match Peas War ~中島、あれやろうぜ!~ 原案:田中 解答:井上・鈴木・田中 解説スライド:鈴木

Upload: hcpc-

Post on 14-Apr-2017

124 views

Category:

Technology


1 download

TRANSCRIPT

2015/09/23 会津大学競技プロ合宿 day3 B 1

B:Match Peas War ~中島、あれやろうぜ!~

原案:田中解答:井上・鈴木・田中解説スライド:鈴木

2015/09/23 会津大学競技プロ合宿 day3 B 2

問題概要

  磯野君と中島君が「あれ」で勝負する

  先手後手があり、先手は磯野君である

  互いに最適な行動を選択する

  与えられた初期状態において、勝者はどちらか

2015/09/23 会津大学競技プロ合宿 day3 B 3

「あれ」

  マッチ・グリーンピース・戦争(と呼ぶらしい)

2015/09/23 会津大学競技プロ合宿 day3 B 4

「あれ」のルール:初期状態

1

1

※各手において立っている指の本数を書いています

1

1

赤:磯野君 vs 青:中島君

両プレイヤーとも両手に1本ずつ指を立てた状態からスタート

2015/09/23 会津大学競技プロ合宿 day3 B 5

「あれ」のルール:攻撃

1

1

1

1⇒2

赤:磯野君 vs 青:中島君

先手から順に、一方の手を使って、相手の一方の手を攻撃

攻撃された手は、立っている指の本数が足される

2015/09/23 会津大学競技プロ合宿 day3 B 6

「あれ」のルール:退場

4

1

2⇒6

2

赤:磯野君 vs 青:中島君

立つべき指の本数が5以上になった手は退場し、ゲームに参加できなくなる

退場!

相手の両手を退場させたプレイヤーが勝ち!

2015/09/23 会津大学競技プロ合宿 day3 B 7

磯野君たちのローカルルール

4

1

3

2

赤:磯野君 vs 青:中島君

初期状態が1本から4本の間で自由

2015/09/23 会津大学競技プロ合宿 day3 B 8

想定解法

  ゲーム木探索

  あり得るゲーム進行を深さ優先探索した結果を利用する

(2, 3) (2, 3)

(2, 3) (4, 3)

(2, 3) (2, -)

(-, 3) (4, 3)

(2, -) (4, 3)

(4, 3) (2, -)

(2, -) (2, -)

(-, 3) (-, 3)

(-, 3) (4, -)

(2, -) (4, -)

(2, -) (-, 3)

(4, 3) (-, -)

(2, -) (4, -)

(-, -) (4, -)

(-, -) (4, -)

(-, -) (-, 3)

(-, -) (4, -)

(-, -) (-, 3)

(磯野) (中島)

(2, 3) (-, 3)

(-, 3) (-, 3)

(2, -) (-, 3)

(-, 3) (-, -)

(2, -) (-, -)

こんな感じの木ができる!

2015/09/23 会津大学競技プロ合宿 day3 B 9

想定解法

  DFSの帰りがけに、勝者を持ち上げる

各プレイヤーは自分が勝てる分岐があるならばそれを選ぶ

(2, 3) (2, 3)

(2, 3) (4, 3)

(2, 3) (2, -)

(-, 3) (4, 3)

(2, -) (4, 3)

(4, 3) (2, -)

(2, -) (2, -)

(-, 3) (-, 3)

(-, 3) (4, -)

(2, -) (4, -)

(2, -) (-, 3)

(4, 3) (-, -)

(2, -) (4, -)

(-, -) (4, -)

(-, -) (4, -)

(-, -) (-, 3)

(-, -) (4, -)

(-, -) (-, 3)

(磯野) (中島)

(2, 3) (-, 3)

(-, 3) (-, 3)

(2, -) (-, 3)

(-, 3) (-, -)

(2, -) (-, -)

中 中 中

中 中 中 中

中 中

磯磯

磯 磯

中 中

勝者:磯野

2015/09/23 会津大学競技プロ合宿 day3 B 10

探索のメモ化は必要?

  memo[磯野左][磯野右][中島左][中島右]のようにメモ化すればO(5^4)を達成できる

  しかし、『あれ』は最悪でも9手で終了し、探索の分岐もあまり多くならないため、メモ化の必要はない

  指が増えたらメモ化しよう

2015/09/23 会津大学競技プロ合宿 day3 B 11

Writer解

  井上(C++):22行  鈴木(C++):45行  田中(Python):27行