fpga traxコンテストについて
TRANSCRIPT
FPGA Trax コンテスト
琉球大学 長名保範 立命館大学 泉 知論
イーツリーズ・ジャパン 三好健文 愛媛大 中原啓貴
FPGAデザインコンテスト
RECONF研究会・ICFPT・HEART で開催
ICFPT 2010 (Reversi) から対戦型
いわゆる「二人零和有限確定完全情報ゲーム」
国内では異色のデザインコンテスト
2
ほかのデザインコンテスト
学生マイクロ波回路設計試作コンテスト (マイクロ波研究会)
演算増幅器設計コンテスト (応用科学学会)
LSIデザインコンテスト・イン沖縄 (琉大工学部)
3
ゲームソルバの実装
基本的にFPGAには不向き
固定サイズでない空間の、再帰による探索
しかし現実の世界の問題はこういうものだ、と思う… !
向いていないからこそいろいろやるべき?
4
対戦の方法
PC で審判
シリアル接続で通信
USB-UART アダプタ
5
ホストPCFPGAボード
RS-232C + USB ケーブル
対戦プロトコル: Trax の例
6
Host PlayerPlayer
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-T
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-TAA BB
プレイヤーID確認
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-T
-B-WAA BB
プレイヤーID確認
先手・後手の通知
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BBプレイヤーID確認
先手・後手の通知
1手目
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BB
@1/@1/
プレイヤーID確認
先手・後手の通知
1手目
2手目
対戦プロトコル: Trax の例
6
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BB
@1/@1/
B2/B2/
プレイヤーID確認
先手・後手の通知
1手目
2手目
3手目
事前の検証環境
プロトコルと審判プログラムは公開
自分の環境で動かせる: bootable image も配布
審判プログラムと一緒に簡単なゲーム AI を配布
強くはないが、自分の実装と対戦させられる
7
種目新しい種目への変更が新規参入障壁をさげる… はず
Reversi: ICFPT 2010 北京
Connect6: ICFPT 2011 Delhi, HEART 2012 那覇, ICFPT 2012 Seoul
Blokus Duo: ICFPT 2013 京都, HEART 2014 仙台, ICFPT 2014 上海, HEART 2015 Boston
8
過去のレギュレーションの例FPGA のサイズ規制
お金勝負にならないように
外部メモリサイズ規制
事前に計算された単純なテーブル引きで戦うのを防ぐ
ハード CPU コア規制
回路のコンテストだし...
9
過去の競技: Reversi
8x8 のボード
最終的な石の数を競う
10
過去の競技: Connect 6
19x19 のボード
黒が先手
初手を除き、ふたつずつ置く
先に6つ並べると勝ち
11
過去の競技: Blokus Duo
14x14 のボード・21種類のタイル
12
過去の競技: Blokus Duo
回転・裏表は自由
13
過去の競技: Blokus Duo
自分のタイルと角が接するように置かねばならない
14
REQUIRED
反則にならない ⊇ 勝つ
勝つためには最低限反則にならないことが必要
Reversi, Connect6: これは比較的簡単
Blokus Duo: 配置の制約、タイルの形状...
このあたりはゲームの性格によって大きく異なる
15
デザインの傾向
高位合成を利用したデザインが増加
難しいルールでも間違いなく書ける
100% RTL で記述するグループもある
そして強い・・・
16
Trax
1982年、ニュージーランド発祥
今年12月の ICFPT Design Competition の課題
ひとあし早く9月のFITでコンテストを実施します
CPSY, ARC, GI と合同開催
17
Traxの基本2人のプレーヤ、1種類のタイル
白を選んだプレーヤが先攻
タイルは裏表・回転が自由
同じ色の線をつないでいくゲーム
コンテストでは盤面サイズは無制限
8x8 のルールもあります
18
Traxの基本
2人のプレーヤ、1種類のタイル
白を選んだプレーヤが先攻
タイルは裏表・回転が自由
同じ色の線をつないでいくゲーム
コンテストでは盤面サイズは無制限のルールを用いる
19
指し方の基本
先攻から先に、基本的に1ターン1枚ずつタイルを置く
既に置かれているタイルに同じ色の線をつなぐ
自分の線を伸ばしても相手の線を伸ばしてもよい
20
Forced play: 連鎖ルール
新しくタイルを置いた結果できたスペースの2辺に同じ色の線がある場合
そこを埋めるようにタイルを配置する
連鎖ルールが適用できなくなるまでが1つのターン
連鎖が起きた場合には 1ターン≠1枚
21
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
連鎖ルールの例
隣接する辺でも対向する辺でもよい
全部片付くまでやらねばならない
見落としに注意
禁じ手にも注意 (後述)
22
ループ
どちらかの色の線が閉路を形成した場合
先にできたら勝ち
自分のターンで相手のループができることもある
詳しくはのちほど
23
ループ
どちらかの色の線が閉路を形成した場合
先にできたら勝ち
自分のターンで相手のループができることもある
詳しくはのちほど
23
ビクトリーライン
以下のようなラインが形成できたら勝ち
場に置かれたタイルの端から反対側まで
入ってきたのと同じ向きに抜ける
長さが8タイル以上
XもしくはY方向の絶対値差分
24
ビクトリーラインの例
赤は「端から端まで」でない
白は OK
白の長さはちょうど 8
25
禁じ手
3辺から同じ色の線がくるスペースを作ってはならない
図の例では3辺が白
こういうのをつくったら負け
連鎖ルールの結果として、でも負けになるので注意
26
勝敗
自分のターンでループかラインが形成できたらとにかく勝ち
連鎖ルールが適用されていく途中で相手のループやラインができても連鎖ルールの適用が終わるまでに自分のループやラインができればOK
自分のターンで相手のループやライン「だけ」ができたら、相手の勝ち
27
Trax notation
棋譜を記録するためのフォーマット
Trax の公式ソフトウェアなどで使用
コンテストでも使います
28
Trax notation 使用上の制約
最初の一手は右のどちらか
人 vs 人なゲームではこれはどうでもよい
だが、盤面をぐるぐる回せばどこかでこうなる
29
タイルの種類
3種類: +, /, \ で識別
各文字に対応するタイルは2種類
すでに置かれているタイルとの関係で一意に定まる
最初の一手が限定されているのはこのため
30
+
/
\
座標系
相対位置
タイルが置かれているエリアの左上が A1
そのもう一つ左が @ で上が 0
@ や 0 のつく位置に置くと座標が動くので注意
31
A B0\@
1
2
3
Trax notation
各ターンの最初の一枚を「座標・タイル」で表記
右の例なら “A1+”
連鎖ルール適用分は書かない
32
A B0\@
1
2
3
Trax Protocol
33
Host PlayerPlayer
Trax Protocol
33
Host PlayerPlayer
-T-T
Trax Protocol
33
Host PlayerPlayer
-T-TAA BB
プレイヤーID確認
Trax Protocol
33
Host PlayerPlayer
-T-T
-B-WAA BB
プレイヤーID確認
先手・後手の通知
Trax Protocol
33
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BBプレイヤーID確認
先手・後手の通知
1手目
Trax Protocol
33
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BB
@1/@1/
プレイヤーID確認
先手・後手の通知
1手目
2手目
Trax Protocol
33
Host PlayerPlayer
-T-T
-B-W@0/
@0/
AA BB
@1/@1/
B2/B2/
プレイヤーID確認
先手・後手の通知
1手目
2手目
3手目
FIT Trax コンテスト
9/17, みかん大学
Embedded (< 5W)
Standard (<100W)
255手引き分け
シリアルかEthernetで接続
34
Getting Involved
35
検索Trax FPGA