fpga traxコンテストについて

56
FPGA Trax コンテスト 琉球大学  長名保範  立命館大学  泉 知論 イーツリーズ・ジャパン  三好健文 愛媛大  中原啓貴

Upload: yasunori-osana

Post on 07-Aug-2015

201 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: FPGA Traxコンテストについて

FPGA Trax コンテスト

琉球大学 長名保範  立命館大学 泉 知論

イーツリーズ・ジャパン 三好健文 愛媛大 中原啓貴

Page 2: FPGA Traxコンテストについて

FPGAデザインコンテスト

RECONF研究会・ICFPT・HEART で開催

ICFPT 2010 (Reversi) から対戦型

いわゆる「二人零和有限確定完全情報ゲーム」

国内では異色のデザインコンテスト

2

Page 3: FPGA Traxコンテストについて

ほかのデザインコンテスト

学生マイクロ波回路設計試作コンテスト (マイクロ波研究会)

演算増幅器設計コンテスト (応用科学学会)

LSIデザインコンテスト・イン沖縄 (琉大工学部)

3

Page 4: FPGA Traxコンテストについて

ゲームソルバの実装

基本的にFPGAには不向き

固定サイズでない空間の、再帰による探索

しかし現実の世界の問題はこういうものだ、と思う… !

向いていないからこそいろいろやるべき?

4

Page 5: FPGA Traxコンテストについて

対戦の方法

PC で審判

シリアル接続で通信

USB-UART アダプタ

5

ホストPCFPGAボード

RS-232C + USB ケーブル

Page 6: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

Page 7: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-T

Page 8: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-TAA BB

プレイヤーID確認

Page 9: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-T

-B-WAA BB

プレイヤーID確認

先手・後手の通知

Page 10: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BBプレイヤーID確認

先手・後手の通知

1手目

Page 11: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BB

@1/@1/

プレイヤーID確認

先手・後手の通知

1手目

2手目

Page 12: FPGA Traxコンテストについて

対戦プロトコル: Trax の例

6

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BB

@1/@1/

B2/B2/

プレイヤーID確認

先手・後手の通知

1手目

2手目

3手目

Page 13: FPGA Traxコンテストについて

事前の検証環境

プロトコルと審判プログラムは公開

自分の環境で動かせる: bootable image も配布

審判プログラムと一緒に簡単なゲーム AI を配布

強くはないが、自分の実装と対戦させられる

7

Page 14: FPGA Traxコンテストについて

種目新しい種目への変更が新規参入障壁をさげる… はず

Reversi: ICFPT 2010 北京

Connect6: ICFPT 2011 Delhi, HEART 2012 那覇, ICFPT 2012 Seoul

Blokus Duo: ICFPT 2013 京都, HEART 2014 仙台, ICFPT 2014 上海, HEART 2015 Boston

8

Page 15: FPGA Traxコンテストについて

過去のレギュレーションの例FPGA のサイズ規制

お金勝負にならないように

外部メモリサイズ規制

事前に計算された単純なテーブル引きで戦うのを防ぐ

ハード CPU コア規制

回路のコンテストだし...

9

Page 16: FPGA Traxコンテストについて

過去の競技: Reversi

8x8 のボード

最終的な石の数を競う

10

Page 17: FPGA Traxコンテストについて

過去の競技: Connect 6

19x19 のボード

黒が先手

初手を除き、ふたつずつ置く

先に6つ並べると勝ち

11

Page 18: FPGA Traxコンテストについて

過去の競技: Blokus Duo

14x14 のボード・21種類のタイル

12

Page 19: FPGA Traxコンテストについて

過去の競技: Blokus Duo

回転・裏表は自由

13

Page 20: FPGA Traxコンテストについて

過去の競技: Blokus Duo

自分のタイルと角が接するように置かねばならない

14

REQUIRED

Page 21: FPGA Traxコンテストについて

反則にならない ⊇ 勝つ

勝つためには最低限反則にならないことが必要

Reversi, Connect6: これは比較的簡単

Blokus Duo: 配置の制約、タイルの形状...

このあたりはゲームの性格によって大きく異なる

15

Page 22: FPGA Traxコンテストについて

デザインの傾向

高位合成を利用したデザインが増加

難しいルールでも間違いなく書ける

100% RTL で記述するグループもある

そして強い・・・

16

Page 23: FPGA Traxコンテストについて

Trax

1982年、ニュージーランド発祥

今年12月の ICFPT Design Competition の課題

ひとあし早く9月のFITでコンテストを実施します

CPSY, ARC, GI と合同開催

17

Page 24: FPGA Traxコンテストについて

Traxの基本2人のプレーヤ、1種類のタイル

白を選んだプレーヤが先攻

タイルは裏表・回転が自由

同じ色の線をつないでいくゲーム

コンテストでは盤面サイズは無制限

8x8 のルールもあります

18

Page 25: FPGA Traxコンテストについて

Traxの基本

2人のプレーヤ、1種類のタイル

白を選んだプレーヤが先攻

タイルは裏表・回転が自由

同じ色の線をつないでいくゲーム

コンテストでは盤面サイズは無制限のルールを用いる

19

Page 26: FPGA Traxコンテストについて

指し方の基本

先攻から先に、基本的に1ターン1枚ずつタイルを置く

既に置かれているタイルに同じ色の線をつなぐ

自分の線を伸ばしても相手の線を伸ばしてもよい

20

Page 27: FPGA Traxコンテストについて

Forced play: 連鎖ルール

新しくタイルを置いた結果できたスペースの2辺に同じ色の線がある場合

そこを埋めるようにタイルを配置する

連鎖ルールが適用できなくなるまでが1つのターン

連鎖が起きた場合には 1ターン≠1枚

21

Page 28: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 29: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 30: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 31: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 32: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 33: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 34: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 35: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 36: FPGA Traxコンテストについて

連鎖ルールの例

隣接する辺でも対向する辺でもよい

全部片付くまでやらねばならない

見落としに注意

禁じ手にも注意 (後述)

22

Page 37: FPGA Traxコンテストについて

ループ

どちらかの色の線が閉路を形成した場合

先にできたら勝ち

自分のターンで相手のループができることもある

詳しくはのちほど

23

Page 38: FPGA Traxコンテストについて

ループ

どちらかの色の線が閉路を形成した場合

先にできたら勝ち

自分のターンで相手のループができることもある

詳しくはのちほど

23

Page 39: FPGA Traxコンテストについて

ビクトリーライン

以下のようなラインが形成できたら勝ち

場に置かれたタイルの端から反対側まで

入ってきたのと同じ向きに抜ける

長さが8タイル以上

XもしくはY方向の絶対値差分

24

Page 40: FPGA Traxコンテストについて

ビクトリーラインの例

赤は「端から端まで」でない

白は OK

白の長さはちょうど 8

25

             

             

             

           

Page 41: FPGA Traxコンテストについて

禁じ手

3辺から同じ色の線がくるスペースを作ってはならない

図の例では3辺が白

こういうのをつくったら負け

連鎖ルールの結果として、でも負けになるので注意

26

Page 42: FPGA Traxコンテストについて

勝敗

自分のターンでループかラインが形成できたらとにかく勝ち

連鎖ルールが適用されていく途中で相手のループやラインができても連鎖ルールの適用が終わるまでに自分のループやラインができればOK

自分のターンで相手のループやライン「だけ」ができたら、相手の勝ち

27

Page 43: FPGA Traxコンテストについて

Trax notation

棋譜を記録するためのフォーマット

Trax の公式ソフトウェアなどで使用

コンテストでも使います

28

Page 44: FPGA Traxコンテストについて

Trax notation 使用上の制約

最初の一手は右のどちらか

人 vs 人なゲームではこれはどうでもよい

だが、盤面をぐるぐる回せばどこかでこうなる

29

Page 45: FPGA Traxコンテストについて

タイルの種類

3種類: +, /, \ で識別

各文字に対応するタイルは2種類

すでに置かれているタイルとの関係で一意に定まる

最初の一手が限定されているのはこのため

30

Page 46: FPGA Traxコンテストについて

座標系

相対位置

タイルが置かれているエリアの左上が A1

そのもう一つ左が @ で上が 0

@ や 0 のつく位置に置くと座標が動くので注意

31

A B0\@

1

2

3

Page 47: FPGA Traxコンテストについて

Trax notation

各ターンの最初の一枚を「座標・タイル」で表記

右の例なら “A1+”

連鎖ルール適用分は書かない

32

A B0\@

1

2

3

Page 48: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

Page 49: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-T

Page 50: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-TAA BB

プレイヤーID確認

Page 51: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-T

-B-WAA BB

プレイヤーID確認

先手・後手の通知

Page 52: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BBプレイヤーID確認

先手・後手の通知

1手目

Page 53: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BB

@1/@1/

プレイヤーID確認

先手・後手の通知

1手目

2手目

Page 54: FPGA Traxコンテストについて

Trax Protocol

33

Host PlayerPlayer

-T-T

-B-W@0/

@0/

AA BB

@1/@1/

B2/B2/

プレイヤーID確認

先手・後手の通知

1手目

2手目

3手目

Page 55: FPGA Traxコンテストについて

FIT Trax コンテスト

9/17, みかん大学

Embedded (< 5W)

Standard (<100W)

255手引き分け

シリアルかEthernetで接続

34

Page 56: FPGA Traxコンテストについて

Getting Involved

35

検索Trax FPGA