将棋プログラム「うさぴょん」、囲碁プログラム「ねこにゃ」の開発にまつわることを徒然なるままに綴っています。今年の振り返り「うさぴょん2’」公開しました。「うさぴょん2’」で電王トーナメントに参加して来ました。電王戦トーナメントに参加するつもりです。第26回世界コンピュータ将棋選手権+αのバージョンを公開しました。第26回世界コンピュータ将棋選手権に参加して来ました。挫折...第25回コンピュータ将棋選手権で使ったバイナリを公開しました。「うさぴょん2’」で電王トーナメントに参加して来ました。「うさぴょん2’」で電王トーナメントに参加して来ました。「うさぴょん2’」で電王トーナメントに参加して来ました。「うさぴょん2’」で電王トーナメントに参加して来ました。「うさぴょん2’」で電王トーナメントに参加して来ました。「うさぴょん2’」で電王トーナメントに参加して来ました。電王戦トーナメントに参加するつもりです。電王戦トーナメントに参加するつもりです。(囲碁の時間)自作の詰将棋(その2)です。(将棋(詰将棋)とか競艇とか法律とか囲碁とかホークスとか。2016」へのリンクはこちら。2016の12/14の分となります。今年は、ついに「うさぴょん」と「さようなら」をした年になりました。「うさぴょん」は、前向き枝刈をするオールドスタイルのプログラムでしたし、設計思想は2001年頃のままでしたので、結構長生きをしたのではないかと思います。うさぴょんを全幅探索型にする事や、学習部を書いて3駒関係などを持ち込む事も考えないではなかったのですが、局面の「更新」の関数が相当重い処理になっていました(利きの管理や、各駒ごとの交換値の管理などをしていました)ので、これをベースにして全幅探索するのはさすがに無理がありそうで、断念しました。「うさぴょん」の合法手生成+手の評価は、実は結構「強力」で、駒がぶつかり合って以降は、並び替えた後の一手目の候補手が、プロ棋士の棋譜との一致率が90%近くになります。(ちょっと自慢してみましたw)「うさぴょん2」以降、コードのベースは、「かず@なのは」さん作成の「なのはmini」に乗り換えましたので、かつて私の作成した「れさぴょん」を使って参加していた「かず@なのは」さんと、使用しているライブラリの親子関係が入れ替わった形になります。この事を指して、師弟関係が入れ替わったとTweetしたかも知れません(苦笑)。一つでもライブラリを使うのなら、ライブラリ登録されているものは使い倒す、という方針で今年は開発を進めて行きました。評価には「大樹の枝(Apery)」の評価バイナリを使い、決勝リーグへと初進出(決勝リーグで全敗w)を果たしました。Apery」ベースの評価バイナリを「やねうら王」をベースにした学習部で強化するという、「夢の3ライブラリ合体!」を果たしましたが、評価バイナリは、完全に「浮かむ瀬」や「やねうら王」に負けてましたね...。電王戦トーナメントの結果も、決勝進出したものの、決勝一回戦で「やねうら王」に(順当に?)負ける結果になりました。途中まで結構いい勝負(やや有利)だったと思うんですが...今年は決勝までは行けるものの、そこが限界、だったように思います。盤の構造がBitBoardでなくて配列型であっても、「まだ戦える」ことは示せたのではないかなーとか勝手に思っております。今年は「巨人の肩」に乗ってみて、そうか、こうなるのか...と体験を出来た年になりました。いう景色をトップランナーは見ているのだな、と...。非常に良い体験になりました。来年ですが...ライブラリ不使用で、「うさぴょん3」を開発して参加したいな、と考えておりますが、10月末頃から仕事が非常に忙しくて、「うさぴょん3」の骨格も出来ていないというか、基本設計も出来てない状態です。「うさぴょん2’TURBO」なんていう名前で参加していたら、またライブラリ使用してるのか、と考えて頂いて問題ありませんw末筆ながら「巨人の肩」を貸して頂いた皆様に感謝を。(土)「うさぴょん2’」公開しました。(第四回将棋電王トーナメント版+デバッグ)を公開しました。必要なファイル一式をGitHubのうさぴょん2’のリリースページに置きました。よろしければ、ダウンロードをどうぞ。(日)「うさぴょん2’」で電王トーナメントに参加して来ました。うさぴょん2’(うさぴょんツーダッシュと読んで下さい)で電王トーナメントに参加して来ました。明日もあるのに「過去形」なのは、決勝トーナメントには進出したものの、真・やねうら王に負けて、今日で終わってしまったからです。今回は大分強く出来たと思うのですが、バグありのようで、予選リーグでは、相手玉が詰んでる状態(後3手だったはず)なのに、時間切れ負けを一回やっちゃいました(苦笑)。いう事情で、実はトーナメントでは、安全であろう「選手権+αバージョン」+「新評価バイナリ」とバグがあると思われる「新しいバージョン」+「新評価バイナリ」を相手によって使い分けてました。そのおかげかどうかは分かりませんが、一次予選は12位でギリギリで突破して今日の決勝トーナメントには進出できました...。9:30頃)作った更に安定性がなさそうなバージョンを、「これしか勝ち目がない」と思いましたので使ってみました。結果として、真・やねうら王に対しても結構善戦出来たのではないかと思っております。バグがあると分かってるモノを公開する気にはなれない&ただ今、本業の方が非常に忙しいため、公開はするにしても、大分先になってしまうのではないかと思います...。公開するのを待っている人もあんまりいないような気がするので(苦笑)、かなり優先順位低めです...。強いソフトはいくらでも他にありますしね...(--;欲しいと思われる方はこちらの記事にコメントでも付けて下されば多少はやる気が上がるかと思います。あ、そう言えば、前回の記事でR200位上がればギリギリ5位には入れるんじゃないかと勝手にイメージしてましたが、実際にR200上がったのに5位にも入れませんでしたorz詳細な結果はこちら、電王戦公式ページに。(日)電王戦トーナメントに参加するつもりです。電王戦トーナメントに参加するつもりです。今のままだと入賞は出来ないと思いますが、学習用のマシンを「やねうら王」さんから特価?で分けて貰えることになりましたので、がっつり学習で効果を上げたいと思います。一応、StockFish7の最新のソースを追いかけて実装する学習を回す(最初は小規模から、効果を見ながら大規模学習へ移行予定)プログラムの高速化(nps10~20%位上がるといいな...)を「うさぴょん2」に対して行い、「うさぴょん2’(うさぴょんツーダッシュ)」で参加するつもりです。してR200位上がれば、ギリギリ5位には入れるイメージなのですが...どうなることやら...(苦笑)。(金)第26回世界コンピュータ将棋選手権+αのバージョンを公開しました。表題のとおり、第26回世界コンピュータ将棋選手権で使用したバージョンのプログラムに、ちゃんと投了するような処理を加えた「うさぴょん2」を公開しました。http://usapyon.game.coocan.jp/usapyon2/から必要なEXE、定跡、評価バイナリ等のダウンロードが出来ます。大会で使った定跡はどうしようか迷った末に、公開しない方針にしました。定跡をがっつり編集して序盤で優位に立つ戦い方をされるとかなり辛いことが分かりましたので...。言え、来年の選手権で同じ定跡を使うかどうかもまだ全く未定(そもそも参加するのかどうかも未定)なのですが、まぁ今の定跡なら時々振り飛車も指すし、一方選手権バージョンは完全に自分から飛車を振る振り飛車を取り除いていたりするので...。(火)第26回世界コンピュータ将棋選手権に参加して来ました。題名の通り、第26回世界コンピュータ将棋選手権に参加して来ました。運が良くて、決勝リーグ進出(だけど決勝リーグで全敗)という結果になりました。どの辺が運が良かったかと考えている所は、いくつかあるのですが、今日はそのマトメを書くには時間が少な過ぎです。大会版(にちょっとバグフィックスしたバージョン)は早ければ今週の日曜日(2016年5月15日)に公開できるかと思います。(より具体的には、ちゃんと合法手がない局面で変な手を返さずに投了する「だけ」の簡単なハズのバグフィックスです...。「うさぴょん2」になります。そちらのページから、GitHubでソースコードを公開している所へのリンクもありますので、ソースコードを見たい方はGitHubでどうぞご覧下さい。今現在は、すごく調子が悪くなってしまった執筆用・開発用のマシンのHDDの復旧作業をやっております...。「笑えばいいと思うよ」っていうような感じです...。実感が湧かなくて、フワフワしております...。11%完了しましたという表示からいっこうに進む気配がないようです...。一応読み込みできるデータは別HDDに移動しています。(水)挫折...「うさぴょん」の「第25回世界コンピュータ将棋選手権版」の32bit化が全く上手く行ってません。・゚゚・(≧д≦)・゚゚・。原因もさっぱり分からず。デバッグモードでビルドすると動くし。<それで止まってくれれば止まる場所は容易に分かるのですが。一応、シンボルファイルやmapファイルなど作りまして、止まる場所がどこかは見つけました。「そこで止まるってありえないw(゚o゚)w」と言うわけで、半ば32bit版のリリースは諦めました...。仕事がヒマになると思われる夏から秋頃にかけて、再び32bit版をリリースできるように努力します。ちなみに、公開している64bit版は、Windows8/Windows8.1の64bit版でも「通信対局」をしなければ動く...らしいです。(ユーザーの方からの報告による情報です。私はWindows8系のマシンは持っていないので再現実験が出来ません...。)Windows8系の64bit版OSで動いたら、コメント欄にてご報告していただけると助かります。(金)第25回コンピュータ将棋選手権で使ったバイナリを公開しました。「うさぴょん」の第25回コンピュータ将棋選手権で使ったバイナリを公開しました。強力なマシンを用いていたのに一次予選を4勝3敗で落ちているので、強さはまぁその程度だと思って下さい。64bit版でしかおそらく動かないかと思います。時間に余裕が出来れば、今週末あたりに多分ほとんどのWindowsマシンで動くと思われる32bit版を公開します。8並列とか6並列での動作時に多分以前のバイナリーより早くなっていると思いますが、4並列とか2並列ではほとんど差は無いものと思います。usapyon.iniを編集しないと1スレッドしか使いません。?マークをつけてるのは、『結局何も間に合わなかった』から、です。そんな『うさぴょん』ですが、とりあえず、大会で使ったバイナリーを公開しました。仮公開にしたのは、以下のような理由がありまして...思考時間の設定は出来ません。設定しても無視して、15分+秒読み10秒の電王戦一次予選と同じ時間の使い方をします。それでもよろしければ、遊んでやって下さい。人間側には時間切れとかありません。公開先はうさぴょんのダウンロードページです。日曜日あたりに、思考時間を設定できるバージョンを『本公開』する予定なので、そちらをお待ち下さっても構わないかと思います。(月)うさぴょんは「うさぴょん改」になれなかったけれども電王戦に参加してきました。『うさぴょん改』という名前で出ていたものの、結局『うさぴょん』のまま、しかも64ビットモードじゃなくて32ビットモードでしかWindows8.1の上では動かなかったりして、多分いつぞやの選手権に最後に出た時よりも、若干弱くなっているでしょう。あ、電王戦では手持ちのPCよりもハードウェア性能があがっていたんで、電王戦に限れば『うさぴょん』の選手権版よりも強かったかも知れません。(直接対局させれば分かるんですが、電王戦用のハードはちょっとお高い(それでも、欲しいけど...)ので、普段のPCと対局させることはちょっと無理です。)で、結果は4勝4敗で25チーム中16位。実力通りの結果と言えそうです。Flashを使って、8試合の模様を公開するつもりです。下手っぴなところが負けた将棋では随所に出ていた感じがして仕方ありません。学習が上手く行ってると思ったところが「過学習」を起こしていて、結局0から学習を再開したり、0から学習したのは何かfloodgateで成績が下がっていたり、色々ありましたけれども...。Java将棋のアルゴリズム―アルゴリズムの強化手法を探るコンピュータ将棋のアルゴリズムの姉妹本。こちらは、Javaでプログラムが書ける人が対象です。コンピュータ将棋のアルゴリズムより少しだけ易しめに書いた本。コンピュータ将棋のアルゴリズム―最強アルゴリズムの探求とプログラミングC++でプログラムが書けることは前提として、コンピュータ将棋の基本的なアルゴリズムを概説した本、という位置付けです。この先で何をしないといけないか、は、「コンピュータ将棋の進歩」シリーズをどうぞ。アマ4段を超える―コンピュータ将棋の進歩〈4〉『激指』の実現確率による打ち切り探索、『KFEnd』のABC探索、詰め将棋へのdf-pnアルゴリズムの応用など、今でも資料的価値は高い本。HPでも手に入る内容が多いです。コンピュータ将棋の進歩〈3〉IS将棋、金沢将棋など、この本でしか読めないところがある。コンピュータ将棋の進歩〈2〉詰将棋は、最初に詰将棋に証明数の概念を持ち込んだ「背尾のアルゴリズム」が、指し将棋では「YSS」の詳細なアルゴリズムが掲載された時の本。強い将棋プログラムを作ろうと思うなら、一度は見ておいて損はないと思うが、コンピュータ将棋の進歩5で再度YSSが掲載されていること、詰将棋は反証明数も使ったdf-pnが今の主流であることなどを考えると、df-pnがすんなり理解できて、コンピュータ将棋の進歩5を購入した人はそんなに読む価値はないかも。コンピュータ将棋の進歩「コンピュータ将棋の進歩」シリーズ最初の本。今となっては内容が古くなってしまったので、将棋プログラムを作成する上で読む価値はあまりないかも知れない。柿木将棋のアルゴリズム、詰将棋の並列化探索など。(★★★★)留学デリヘル。