2015年 1月 26日 高橋 智史 第25回世界コンピュータ将棋選手権 きふわらべ アピール文書 \(^▽^)/イェーイ☆ [ と ] [ き ふ わ ら べ ] [ は ] [ の ] [ !? ] [ 明 示 的 な 工 夫 ] [ ] きふわらべは、棋譜並べプログラムなんだぜ☆ 書籍を開き ▲7六歩△8四歩▲2六歩…… といった符号がでてきて 読めん! というときに 使うソフトなんだぜ☆ ┌────────────────┐ [再生 ] 入力欄│▲7六歩△8四歩▲2六歩 │_ │→[コマ送り] Click! └────────────────┘ [戻る ] ┌────┐ マウス操作で 駒の方を動かしても│▲7六歩│と表示されるので └────┘ 駒を動かしながら 棋譜が並べられるんだぜ☆ ──────────────────────────────────────── (ー_ー)... ... ──────────────────────────────────────── [ ] [ コ ン ピ ュ ー タ ー 将 棋 エ ン ジ ン ] [ と ] [ し ] [ て ] [ の ] [ ] [ ] [ 明 示 的 な 工 夫 と は ? ] [ ] [ ] ・素朴集合論 要素 「升」という確かなものがある。 (マス) 集合 「升」をいくつか集めてグループにして 名前を付けたもの。 ┌─────┐ ┌┘ └─┐ │ └┐ ┌┘ 要素 │ │ 要素 └─┐ │ 要素 │ │ 要素 │ → 集合 └┐ 要素 要素 │ └┐ 要素 ┌──┘ └┐ ┌─┘ └────┘ 飛車の動き ボキャビリティーの高い 逐一的な表現の集まり ピンポイントな表現 ────────── ─────────── ・上への香車 ・右への香車 => ・飛車の動き ・下への香車 ・左への香車 ↑ ↑ ←←飛→→→→→→→→→→→→ 有向な ↓ 升=要素 ↓ の集合 ↓ cut (exclude) 味方の駒 ↑ ↑ 角 ←←飛→→→→→→▽.... ↓ cut! ↓ ↓ cut (include) 敵の駒 ↑ ↑ ←←飛→→→→→→ ▲ . . cut! 答え ↑ ↑ ←←飛→→→→→→ ↓ // メモ // // すべての駒の動きが 基本的に // // 升 + 升 - 升 // (足す) (引く) // // // 集合 + 集合 - 集合 // (足す) (引く) // // ※升は要素1個の集合と考えて // 升も集合も同じように混合可能 // // のパターンで表現されています。 ──────────────────────────────────────── (・_・) ──────────────────────────────────────── [ ] [ ま ず は ] [ ] [ 箱 ] [ ] [ ] [ ] [ を 作 っ て い る ] [ ] [ ] ・初期セット ────────────────────────────── 将棋盤上の部屋 ────────────────────────────── ・プレイヤー ・エンプティ ※空っぽ = エラー用 ・1P(黒、先手) ・2P(白、後手) ・置き場 および ※マス番号が分かれば マス番号 置き場は紐づいている ・将棋盤 ( 0 〜 80番 の 81マス ) ・先手駒台 ( 81 〜 120番 の 40マス ) ・後手駒台 ( 121 〜 160番 の 40マス ) ・駒袋 ( 161 〜 200番 の 40マス ) ・エンプティ ( 201 番 の 1マス ) ※エラー用 ・種類 ・エンプティ ・歩 ・香 ・桂 ・銀 ・金 ・王(玉との区別なし) ・飛 ・角 ・と ・杏 ・圭 ・全 ・竜 ・馬 ・12方角 ・桂跳 ・桂跳 ※桂馬は「上に2つ、横に1つ」 ・左上 ・上 ・右上 ではなく、早見表を用意 ・左 ・右 ~~~~~~~~ ・左下 ・下 ・右下 していますので、 ・桂跳 ・桂跳 桂跳1つという操作があります。 ・推進力 ・1マス隣へ (有向) ・8マス貫通 (有向) ・任意の1マス(無向) ────────────────────────────── 思考空間内の部屋 ────────────────────────────── ・棋譜の木 ※棋譜 ・「棋譜のノード」を木構造にリンクした集まり。 遊園地の観覧車に例えると、鉄柱の部分。 ・棋譜のノード ・「指し手」キーと「空(sky)」値のペア。 棋譜の木は、これの集まり。 遊園地の観覧車に例えると、乗り物カゴを吊ってる部分。 ・空(sky) ※局面のことを、空と呼んでいます。 ・「星の光」のリスト。 ・本将棋では、星の光を40個持ちます。 検討目的では、個数制限なし。 遊園地の観覧車に例えると、乗り物カゴ1個分。 ・星の光 ※空間上に置けるものはすべて 1手前、現在の2状態を所持可能。 ・現在 ・1手前 (・オプション)※取った駒の記憶用 遊園地の観覧車に例えると、 頂上に上がってきて喜んでいる客と、 1つ後ろの乗り物カゴを見ては さっきはあの場所にいたな、と思い出の中に登場する自分。 ・星 ※星の光の実体。 空間(置き場)上に置けるものを 星と表現しています。 ・駒 ・矢印 (大盤解説※ログ 用) ・色つき枠(大盤解説※ログ 用) ・色つき升(大盤解説※ログ 用) 遊園地の観覧車に例えると、客。 ・フィンガー ※指差しの意 ・星に付いた番号。部品番号の働きをする。 (例) 0:先手王、1:後手王、2:先手飛車…、39:後手歩9 ・本将棋の場合のみ、0〜39の番号は予約されている。 それ以外の場合は、番号はてきとう。 (本将棋の場合) 0 :先手王 1 :後手王 2 :先手飛車 3 :後手飛車 4 :先手角 5 :後手角 6, 7:先手金 8, 9:後手金 10, 11:先手銀 12, 13:後手銀 14, 15:先手桂 16, 17:後手桂 18, 19:先手香 20, 21:後手香 22〜30:先手歩 31〜39:後手歩 遊園地の観覧車に例えると、客に配った入場券の整理番号。 ──────────────────────────────────────── >>>(☆_☆)くくく ──────────────────────────────────────── [ ] [ 思考とか、 ] [ 評価値とか、 ] [ 学習とか、 ] [ ] [ ] [ ] [ ] [ まだ。 ] [ ] 今大会は、土台となる部分の実装が目標なんだぜ☆ 時間があれば、やる☆ ──────────────────────────────────────── (OoO) ──────────────────────────────────────── 5月までには 次のものを 実装する目標だぜ☆ ・将棋のルール通り指せる将棋エンジン ・相手の王さまに向かって駒を動かす程度の思考エンジン ブログ http://grayscale.dou-jin.com/Category/13/ ホームページ http://grayscale.iza-yoi.net/ ┌────ハードウェアスペック────────────────────┐ │ │ │ 種 類 : ノートパソコン 1台 (lenovo) │ │ │ │ O S : Windows 8.1 with Bing │ │ │ │ CPU : Intel(R) Celeron(R) CPU N2830 │ │ @ 2.16GHz 2.16GHz │ │ │ │ 実装メモリ(RAM): 2.00GB ( 1.89GB 使用可能 ) │ │ │ │ システムの種類 : 64ビットオペレーティングシステム │ │ x64ベースプロセッサ │ │ │ └──────────────────────────────────┘ ┌────開発言語──────────────────────────┐ │ │ │ C# │ │ │ └──────────────────────────────────┘ ──────────────────────────────────────── \ (^▽^) / ──────────────────────────────────────── 5月までに どんどん作っていくんだぜ☆ (2015年1月25日時点) 指し手生成部: [指し手生成ルーチン] △ まだ駒が成りません。 相手の駒が成ることも見えていません。 [王手回避] ○ 3手全幅探索することにより、 自玉が利きに飛び入る駒の動きはしません。 [二歩] ○ 二歩はしません [駒が動けないところには打たない] ○ [駒が動けなくなるところに進むときは成る] ○ [打ち歩詰め] × [千日手] × [連続王手の千日手] × [入玉対策] × 探索部: [探索方法] 現時点では、3手を全幅探索します。 [探索ノード数] 900手ぐらいは読んでいると思う。 評価部: [評価関数] × [定跡] × 時間管理: [時間管理] × 点数計算: [24点法] × 通信: [通信] ○ USIプロトコルに対応しています。 ponderは使わないことにしています。 将棋所を介して大会サーバーに接続するつもりです。 ──────────────────────────────────────── (^へ^);; ──────────────────────────────────────── [ ] [ き ふ わ ら べ の ] [ ] [ ] [ ] [ ] [ ] [ ] [ お そ は や ] [ ] [ ] 1.エンジョイ・プログラミングの延長線。 犬が小屋を欲しがっているとします。 犬小屋を買ってくる人もいれば、 犬を放っておいて 小屋を作りたい人もいます。 ────── 6ヶ月ぐらい 犬を外に放置して 小屋を作っているのが きふわらべ です。 2.小屋ができあがる前に、犬が死んでしまう。 私「わたしは もっとすごい小屋を作るつもりなのだが、 時間がかかるので 仮の小屋に入っていてもらおう」 犬「ワンッ(それより1つでも勝利を!)」 私「その小屋はあとで取り上げる」 以上