Novice mini 実行ファイル公開

もはや今更ですが、wcsc29ベースのNovice miniの実行ファイルを公開しました。

github.com

以下から実行に必要な評価関数ファイルと、定跡のハッシュシードファイルをダウンロードします。
(sdt5のAperyの評価ファイルを変換したものです。)

drive.google.com

最後に、binフォルダ以下にKKP_synthesized.bin、KPP_synthesized.bin、PolyGlotRamdons.binを配置します。

第29回世界コンピュータ将棋世界選手権の結果と今後のコンピュータ将棋の話

先日、第29回世界コンピュータ将棋選手権に参加してきました。

今年のNoviceはライブラリから脱却し、DeepLearning使ったり、Xeon44台使ったクラスタを組んだりして参加したのですが、

総合 10位
非ライブラリ部門 1位
独創賞受賞

という結果になりました。

厳しい結果となってしまいましたが、

応援して頂いていた方々、本当にありがとうございました。

さて、今後のNoviceですが、来年に向けては

Deep Learningを更に有効活用し、序盤の部分にもっと活用できないかと思っています。

また、Noviceチームでは、プロ棋士の先生と協力関係になれないかと考えています。

序盤の作戦だったり、定跡の開発などで、この協力関係は双方にとって利があるのではないかと思います。

コンピュータ将棋において、プロ棋士の先生方との共存共栄は電王戦の頃から一つの大きなテーマとなっています。

しかし、現状はどうでしょうか、コンピュータ将棋はその世界で強くなり、

プロ棋士の先生は公開されたエンジンを使い各自研究を行う状況ではないでしょうか。

もし、プロ棋士の先生方とコンピュータ将棋開発者がもっと密に協力体制を取れれば、

将棋がもっと進歩していくのではないでしょうか。

ということで、Noviceチームでは協力していただけるプロ棋士の先生をお待ちしております。

興味あるプロ棋士の先生方は是非twitterやmailして頂ければ幸いです。

第29回 世界コンピュータ将棋選手権 ライブラリについて

CSAの方にメールしたので、こちらにメモ

質問のメールは以下

1. 学習用の教師データ(教師局面と評価値のセット)なのですが、 ライブラリから生成した教師データを用い、
自前の学習部を使って学習を行なった場合、ライブラリ使用となるのでしょうか。

2. また、それがライブラリに該当しない場合、野良評価関数から生成するのは問題ありませんでしょうか。

昨年のルールではここら辺は問題なかったらしいとのことでメールしてみた(次の日、全体へのライブラリのルールが送られてきたので、微妙なタイミングだったようだ)

1. に関しては全体へのメールの通り今年はライブラリ使用に当たるようです。

2. に関して、以下に原文のまま載せておきます。(僕の解釈は入っていないということで)
"ライブラリでない評価関数から、自作プログラムとの対戦以外で生成した局面と評価値のセットは使えません。ただし、それが一般に流布している場合は除きます。
また、生成した教師データを一般に流布させれば(一定の期間公開し、コンピュータ将棋開発者が知ることのできる状態に置くのであれば)、自由に使用して問題ありません。"


一定の期間とはどれくらいなのかなどなど疑問は残りますが、

1ヶ月以上公開してしっかりTwitterとかで言ったりPR文書に在処を書けば問題なさそうです(これは僕の解釈)

選手権出る方々は今年もよろしくお願いします。

Novice_mini 使い方

Novice_miniの使い方が分からないと各所から問い合わせがあったので。

まず、実行環境は現状では mac OSLinux を想定しています。

windowsに関してはビルドしたものを後ほど公開する予定です。

ここでは、mac OSLinuxでの使い方を説明します。

まず、githubからNovice_miniのソースコードを落として来ます。

github.com

その後、srcフォルダ上で端末(terminal)を開き、make all してコンパイルします。

以下から実行に必要な評価関数ファイルと、定跡のハッシュシードファイルをダウンロードします。
(bin.zipにまとめてあります。)

bin.zip - Google ドライブ

最後に、binフォルダ以下にKKP_synthesized.bin、KPP_synthesized.bin、PolyGlotRamdons.binを配置します。

これで、src以下で./Noviceを実行すれば動きます。

Novice_mini ソースコード公開

第28回世界コンピュータ将棋選手権で使用したソースコードを一部変更してNovice_miniとして公開します。

Noviceとの差分は一部探索パラメータや枝刈りが変更されています。

Novice_miniではStockfishのパラメータをほぼ変更なしで使用しています。

もしソースコードにバグ等見つけましたらプルリクエスト頂ければ幸いです。

ソースコードはライブラリ登録しようかなと考えております。

以下、Githubのリンクとなります。

github.com


ちゃっかり以下にAmazonほしい物リスト公開しておきます()

http://amzn.asia/bis9kTX


追記

使い方は以下で解説しています

novice.hatenadiary.jp

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

まず、謝罪から。

二次予選でelmoが反則負けを複数回起こした問題ですが、

どうやら去年自分がk_ohgaさんのsshクライアントを見ながら書いたコードにバグがあったようで、

それを去年の大会の際にelmoの瀧澤さんに渡したことに起因するものだったようです。

これに関しまして、私がしっかりとテストを行わなかったことで瀧澤さんやk_ohgaさんには多大なご迷惑をお掛けしてしまいました。

本当に申し訳ありませんでした。

現在、当バグについて自分の環境で修正を行おうとしていますが再現しておりません。

原因究明が出来次第twitterなどでご連絡できればと思います。

とりあえず、以下にwindowsの機能とbatファイルを用いたsshのエンジン登録について記事を書いておきました。

参考になれば幸いです。

novice.hatenadiary.jp


さて、今回のNoviceですが、結果は56チーム中14位で二次予選で敗退となりました。

半年前の電王トーナメントでPonanzaの一成さんやほかの開発者の方からNoviceなかなか強くならないし努力が足りないと言われ、

反省をして今大会に大学を休学して開発を行ってきました。

レーティングとしては手元の計測(10分+フィッシャー10秒)でApery_sdt5に六割強勝つものになっています。

なので電王トーナメントから約R1000+程度伸びたことになります。

しかし、決勝には進めませんでした。

正直めちゃめちゃ悔しいです。

決勝をみれば分かる通り現状の最強の探索部はやねうら王です。

今回はこれを超えたいと思い開発を続けてきましたが、各所でバグを取り切れずなかなかうまくいきませんでした。

(秋に電王トーナメントがあれば)半年後、今回のくやしさをバネに探索部最強を目指して結果を出しに行きたいと考えています。

大会で使った実行ファイルですがライセンスの問題で公開するか少し迷っています。公開する場合はまた記事書きます。

最後に、研究室のファカルティの先生方や同研究室のメンバー、応援してくださったコンピュータ将棋ファンの皆様、開発者の皆様、

大会運営をしてくださった皆様に本当に感謝をしています。ありがとうございました。

引き続きコンピュータ将棋プログラムNoviceを何卒宜しくおねがいいたします。

外部サーバー上のエンジンを将棋所で動かす on windows 10

手元のノートPCなどの将棋所で外部サーバー上のエンジンを動かす。

まず以下を参考にしてwslを導入する(これはwindows上でLinuxを動かすもの)

www.atmarkit.co.jp

次にコマンドプロンプトから"wsl"と叩いてwsl上に入る。

ssh-keygen をしてssh用の鍵生成を行う。

sshの公開鍵(id_rsa.pub)をサーバー側のauthorizedkeysに追加(ここら辺は普通のsshと同じ)

wsl上からssh出来ることを確認してコマンドプロンプトを終了。

次に適当な場所にengine.bat的なバッチファイルを作成。

そのバッチファイルに"wsl ssh -o ServerAliveInterval=60 username@hostname cd Novice_wcsc28/src \"&"\"&" ./Novice"みたいな感じで書く。(sshのログインと同時にcdで実行ファイルのディレクトリに移動 + 実行を行っている)

後はこのbatファイルを将棋所に登録すれば良い。