コンピュータ将棋

WCSC1日目に行ってきた2

対局開始くらいに着くのをターゲットに出発。対局前のピリピリした空気のところに行くのも気が引けるので。乗り換えに成功し1本早い電車で着く。まず会費を払うが、開始前のクソ忙しそうなときに小谷先生が出てくる。対局はコンピュータがやるから大丈夫だっ…

WCSC1日目に行ってきた

開発できないっぽいと判断し、開発が心理的重荷になるデメリットも考えて今回のWCSCは不参加。CSA会員なので1日目だけ遊びに行った。会費を振り込んだのが5/1ですよ(一応締め切りは守ったが、ギリギリ)。ノープランで遊びに行った。失敗したのは、電車や会…

shogi686_sdt5(開発した)

作る過程については前のエントリで書いたので、今回は内容について書く。 ソース 探索はただのアルファベータ法。反復深化と置換表(スコアのみの簡易版)は使っている。持ち駒の優劣判定も入れたけど、置換表との相性がちょっと心配。全体的に手抜き実装し…

第5回将棋電王トーナメント(参加した)

何も開発しないまま大会2週間前になる。体の調子が悪かったり精神の調子が悪かったりで開発できないと思っていたが、体調がよくなってさあ開発しようとなると、またどうしようもない嫌悪感が襲ってきてコンピュータ将棋のコードは書けないのだった(競プロの…

shogi686microの強さについて

shogi686microは将棋の思考エンジンである。とにかくソースコードをシンプルに短くすることを考えて作った。ショートコーディングという意味ではなく、シンプルで見やすいソースを目指している(実現できているかはともかく)。 探索がアルファベータで評価…

第2期電王戦二番勝負第1局

PONANZAの先手で初手は▲38金。初手は22通りの中からランダムだったらしい。自分は、先手の利は残っていると思ったが、プロ棋士やコンピュータの見解ではそうでもなかったみたい。まあどちらにせよ、最終的にPONANZAがこの金の形を生かすような展開に持ってい…

shogi686における手駒の優劣判定

はじめに これは、手駒の優劣判定を現在のshogi686がどう処理しているかをありのまま説明するための記事。優れた判定方法について解説した記事ではない。最近、数学で証明をするようなカッチリした思考が苦手になってきたので、なんか間違ってたら教えてくだ…

何手読めば飛車先を受けてくれるのか

コンピュータ将棋 Advent Calendar 2016 9日目 今回使った思考エンジンは、評価関数は駒割、探索は単純なPVS(Principal Variation Search)、静止探索は取る手と歩成を4手とリキャプチャーおよび王手回避、置換表あり、前向き枝刈りなし、高速1手詰めなし。…

CGPには負けたくないと言った件

電王トーナメントの予選でニコ生に出たとき、「このソフトには負けたくないみたいなのないですか」とか聞かれて(記憶で書いてるので違う言い方だったらすみません)、「(対戦中の)このCGPには負けたくないですね」と答えた。 あとでNoviceさんとその辺り…

電王トーナメント持ち物

前日準備からの参加で宿泊するので、3日分の着替え。打ち上げに最後までいたいなら、もう1泊するという選択肢もあるかもしれない(そんなに時間がある人は少ないか)。 ノートPCとその電源ケーブル。開発したり、他の開発者にソースを見せたいときのために。…

電王トーナメントに参加してきた

帰ってきたらブログ書く気が失せた。まあなんとか字数を稼ごう。 前日準備。ちゃんと動作していると思っていたが、assertに引っかかっていることにこのタイミングで気づく。会場でデバッグしていたが、頭が回らず進みが遅い。白美神さんに声をかけられてその…

選手権に向けてあんまりやる気が出なかった理由

2016年の1〜4月くらいの話。 理由として大きいのは体調と天気だけど、もう一つ地味に効いていた理由がある。大規模学習(という言葉を脳内で使っていたかは覚えていないが)をしないかぎりponanzaには絶対に勝てないと思っていたから、そして自分はそれがで…

第1期電王戦 第2局

やっぱり二日制は長いよね。放送全体に占める将棋の解説の割合が低くなってしまう。 将棋は、山崎叡王が事前に用意された作戦を使わず、変則相掛かりを目指す。その場で考えて結局矢倉にしてしまうのが実に山崎叡王らしくていい。無理にアンチコンピュータ戦…

第26回世界コンピュータ将棋選手権に参加した

いちいち注釈を付けるのも煩わしいので普通に断言口調で書くけど、細かい記憶違いはたくさんあると思うので注意。 開発状況 1月〜3月は心身の調子が悪く、4月もアニメと囲碁しかやってなかった。1月の時点で申し込みをしてあるわけで、4月はずっと「出場でき…

第1期電王戦 第1局

ニコ生を見ていたが、▲65桂の変化が出てきた辺りから急激に面白くなった。こういう指し手や構想を見たいから、電王戦を続けてほしい。やはり将棋のニコ生で面白いのは将棋なんだよ。そりゃあ人によって「プロ棋士が負けるのを見るのが嫌」とか「コンピュータ…

Visual StudioでAperyをPGOビルド

まず、Visual Studio 2015 Update 2をインストール。デフォルトだとVisual C++が選択されてないのでチェックを入れる。 空のコンソールアプリケーションを作って、Aperyのソース(.cppと.hpp)を全部ぶち込む。 プロジェクトのプロパティを設定する(構成と…

ボナメソするぞ

局面と指し手(教師)の組をたくさん用意して、2駒関係を学習する。 末端局面を得るには、RootMove::pv_を使う。 メモリの確保が必要なのは、評価ベクトル本体、次元下げでペナルティの基準値とする評価ベクトル、勾配、あと一応駒割の勾配(別に遅くならん…

電王トーナメントに参加して

都会 コンビニが近くにある安心感。食事も用意されているし、楽だ。ドワンゴスタッフの仕事を間近で感じられるのもよい。 予選 僕は、1日目の予選を通過することにかなり執着している。今回も3日目の午前中はけっこう居づらかったし。色々話ができたので、行…

コンピュータ将棋を作った(のんのんびよりSS)

知らない人のために少し書いておくと、一穂・ひかげ・れんげは歳の離れた姉妹。設定が色々おかしいけど適当に脳内補間してください。 環境構築編 れんげ「ウチ、コンピュータ将棋作りたいん!!」 ひかげ「どしたの急に」 れんげ「ひか姉に勝つ方法がやっと…

頼れるものがない

完全にやる気なくした。電王トーナメントバージョンにもバグがあって、ちょっとしたことで挙動が変わるからスピードを測ることもできない。キラー手を使わなければ少し安定するっぽいが、それはキラー手にバグがあることを意味しないし。 ヒマなんで、大樹の…

Bitboardクラスの演算子オーバーロードで_mm_andnot_si128()を使う

and演算とnot演算が実装されたBitboardクラスのコードを以下に示す。このクラスを使うと、b0 & ~b1 のように書くことは可能になる。しかし、_mm_andnot_si128()を使った高速化ができないという欠点がある。 class Bitboard { __m128i m128i_; public: Bitboa…

shogi686 真・PR文書

shogi686は、僕(ハンドルネーム:merom686)が開発した将棋ソフトである。 探索 そういえば、どこまでが探索なのか知らない。指し手生成は探索に含まれるだろうか。まあ、大きく機械学習以外ってことで。 search() まず、search関数について。Aperyを参考に…

第3回将棋電王トーナメント

ざっくり書いとく。 前日 一晩学習させてたつもりが、朝起きたら止まっててショックを受ける。そこから数時間回して、予定より少し早く家を出る。会場に着き、本当なら学習を回し始めてから昼食をとったほうが時間を効率よく使えるところだが、急がば回れで…

おや、やる気が

暖かい日が続いて本当に助かる。さて、このタイミングでやる気がなくなった。焦りや不安は定期的に襲ってくるけど、やる気がなくなることもあるんだね。とりあえずは寝るとか運動するとかしてればいい。ていうかこれ、どうなるの。弱いのは仕方ないとして収…

電王トーナメント前にやること

探索はもうこのまま。時間制御と予測読みが未実装なのだがあんまり間際にやりたくないのが残っちゃったよな。最悪一手9秒でもいいが、それはかっこわるいからなあ。 あとは学習だが、普通にボナメソで。深さ2と深さ1のスコアが近くなるようにしたらいい感じ…

電王トーナメント後にやること

自分が独自に考えた手法(高速化や簡略化を含む)を全てブログに書く。これは難しいのだ。選手権のときも、たとえ読みづらくとも全部吐き出すことを優先し、かなり頑張って書いたのだが、やはり及び腰なところはあった。 これは未来の自分のために書くのだ。…

何作ってる?

PR文書の下書きも兼ねて、これまでに何を作ったか、これからどうする予定かを書く。 下書きだと思うと全然書けなくなったので、時系列で書いていく。 shogi686microをベースにBitboard化(コード量が多く、思ったよりずっと大変だった)。PVS、Aspiration se…

shogi686microの仕様

ダウンロード http://merom686.g1.xrea.com/com_shogi.html 概要 探索は単純なアルファベータ法で、評価関数は駒割+α。強さはLesserkai(4手読み)といい勝負くらい。 仕様 反復深化。アルファベータ法。Rootでは指し手をランダムに並べ替えている(これによ…

将棋電王戦に関する記者発表会

開始が予定より15分遅れたが、その間むやみにドキドキしていた。電王戦に関する発表だから、やはり雰囲気がある。不安より期待が大きくなり心がうわつく。 6月〜12月の新棋戦と、11月の電王トーナメントの優勝者同士で、3〜5月の第1期電王戦を戦う。 新棋戦…

shogi686の学習について その2

評価ベクトルは、メモリ上では対称性で容量節約とか一切してない。2駒関係の▲88玉▲78銀と同じ値の▲78銀▲88玉や▲28玉▲38銀、符号が反対の△22玉△23銀も全部入っている。2駒関係だけでそんなに大きくないし、冗長だが差分計算を簡単に書くためこうしている。ス…