タグ

ブックマーク / hiraoka64.hatenablog.com (12)

  • Apery のログ、実行ファイル、ソースコード - hiraoka64’s blog

    (2016年03月22日追記 最新のAperyはこちらからダウンロード出来ます。電王戦FINAL版よりも強いです。 http://hiraokatakuya.github.io/apery/) 電王戦FINAL の思考ログ https://github.com/HiraokaTakuya/denousen_final_log バイナリ https://github.com/HiraokaTakuya/apery_binaries ソースコード https://github.com/HiraokaTakuya/apery どれか興味あるものをダウンロードして楽しんでくれたら幸いです。 ソースコードに関しては、最新版は色々変更してて今は若干使いにくい状態かなと思います。起動にも非常に時間が掛かります。 そのうち直す予定です。 utils/ 以下のファイルに説明が無かったりするのも説明書いたりし

    Apery のログ、実行ファイル、ソースコード - hiraoka64’s blog
  • やねうら王について知っていること - hiraoka64’s blog

    私は昨年11月の将棋電王トーナメント後、やねうらおさんとコンピュータ将棋の勉強会をしたり、メールでやりとりしていた関係で知っていることがあります。 そして、私はそれを公にした方が良いと判断しました。 佐藤六段の対局を直近に控えたこのタイミングで公にすることが良いのか悩みましたが、 ファンにとっても大切な対局ですし、もし佐藤六段にこの内容が伝わって気持ちの整理に繋がるなら 公にすべきと思いました。 公にするにあたり、やねうらおさんには事実関係の確認のメールを何通かしました。 公にすることの許可は取っていません。 とりあえずここでは事実だけを箇条書きすることにします。 ・やねうら王は11月の将棋電王トーナメント後、ほぼ一から作り直されており、それが2月2日にようやく正常に動作するようになりました。 (↓のように訂正します。訂正日3月18日) ・やねうら王は11月の将棋電王トーナメント後、1月中

    やねうら王について知っていること - hiraoka64’s blog
  • 補足 - hiraoka64’s blog

    環境により大きく指し手生成速度が変わるので、 私が分かっていることだけは書いておきます。 ・Cygwin はすごく遅い。vmware で Linux 動かしてる位遅い。 ・32bit OS はすごく遅い。64bit 演算が多いので仕方ない。 ・g++4.4 は make sse とかで SSE 使うとすごく遅い。gcc のバグです。 make release としていれば問題無いです。 ・g++4.5 以降は特に問題なし。 ・Visual C++ は特に問題なし。(昔ビルドしたことがあるので多分) ・make sse より make release の方が何故か指し手生成は速い。 (NPS は make sse の方が速いのですが。) 64bit 版の Linux が一番楽ですが、 64bit 版の Windows + MinGW or Visual C++ でも速度出ると思います。 更に

    補足 - hiraoka64’s blog
  • sfenからBonanzaの学習棋譜への変換 - hiraoka64’s blog

    Bonanzaの学習を動かしたいなと思ったとき、 まずはBonanzaで読み込める棋譜ファイルを作る必要があります。 USIエンジンの場合、sfen形式で棋譜を保存するのがかなり便利なので、 sfenからBonanzaが読み込める形式に変換出来れば自分にとっては満足です。 需要はあまり無いとは思いますが、とりあえず作ったので公開します。 https://github.com/HiraokaTakuya/sfentobonanza.git git clone https://github.com/HiraokaTakuya/sfentobonanza.git でソースコードがダウンロード出来ます。 Ubuntu12.04, g++4.8 で動作確認してます。Cygwinでも動くと思います。 ちなみにsfen形式の棋譜の保存はBlunder.Converterを使うと簡単に出来ます。(Wind

    sfenからBonanzaの学習棋譜への変換 - hiraoka64’s blog
  • 電王戦第二局 佐藤慎一四段 対 Ponanza - hiraoka64’s blog

    生放送で全部見ました。将棋を見ているだけで、私は胸が苦しかったです。将棋終わってから少し泣きました。 電王戦において、 GPS将棋フリーソフトだし、 習甦、ツツカナはプロ棋士にソフト提供があったし、 Puella αはソフト提供無しだけど、昨年ボンクラーズを提供しているので、塚田九段はそれで練習可能。 当の意味で初手合いとなるのはこの第二局だけでした。 そういうこともあって、コンピュータ将棋の実力を知れるのは、 もしかしたらこの対局だけかも知れないと思って、一番楽しみにしていました。 結果はPonanzaの辛勝。 形勢は二転三転し、当にどちらが勝ってもおかしくない将棋でした。 中終盤はまともに戦うとコンピュータに勝てないと考えている人が大勢いた中、十分に渡り合った素晴らしい内容でした。 ただ、時間が少なくなってきた終盤、ミスが出て一気に寄せられてしまったという印象です。 現役プロ棋士

    電王戦第二局 佐藤慎一四段 対 Ponanza - hiraoka64’s blog
  • 電王戦が始まる。 - hiraoka64’s blog

    当に楽しみだ。 正直言って、プロ棋士、コンピュータのどちらが勝っても色々複雑な気持ちになると思う。 電王戦出場ソフトの開発者の方々とは前回選手権で初めて会って、 初参加の俺に色々教えてくれて、皆優しくて良い人達だった。 とても応援したい。 しかし長年の将棋ファンとしては、プロ棋士が負けるのは見たくないという気持ちも大きい。 でも早くプロ棋士は一回くらい負けておかないと、 いつまでもコンピュータと公の場で対局禁止になるかも知れないという危機感もある。 当に複雑な心境だ。 あえてどちらを応援するというのは止めておこうと思う。 全ての対局で素晴らしい棋譜が生まれることだけを願っておこうと思う。 そしてコンピュータ将棋開発者としては、やっぱり電王戦がすごく羨ましい。

    電王戦が始まる。 - hiraoka64’s blog
  • 探索について - hiraoka64’s blog

    探索について取り掛かろうと思う。 探索って何をする必要があるのかっていうのは分かった。 ・指し手を生成 ・良さそうな手の順番に指し手の並び替え ・順番にαβ探索 ・局面の評価 ・βカットとかの枝狩り 色んな探索の効率化手法があるようで、 まず、どんな方法があるのか、先に調べまくった方が、 ソース読むときにも役立つだろうな。 ・PV ・killer ・SEE ・MVV/LVA ・futility prunning ここらへんは常識レベルなのかも知れないけど、 俺には常識が通用しないので ここらへんの単語の意味から調べていくか。

    探索について - hiraoka64’s blog
  • inline 関数には気をつけた方が良いらしい。 - hiraoka64’s blog

    assert 仕込んだ方が速度が出た理由が分かりました。 いろいろ実験して分かったことを箇条書き。 ・inline 化したから速くなるとは限らない。 ・assert の有無で inline 化されたりされなかったりする。 ・同じ inline 関数でも、呼び出し位置によって inline 化されたりされなかったりする。 ・g++ で -Winline をつけると inline 関数が inline 化されたかどうかが分かる。 debug モードでは inline 関数が普通の関数になって、逆に速度上がってたみたいです。 勉強になった。 これからは getter 関数とか 1 行で書けるような関数以外は、とりあえずは inline 化しない。 ……今速度どうこう言ってどうするんだ俺。早く将棋指せるようにしろ。

    inline 関数には気をつけた方が良いらしい。 - hiraoka64’s blog
  • 指し手生成 - hiraoka64’s blog

    元から頻繁に更新するつもりは無かったんですが、 それにしても間隔開け過ぎかな。 それと過去の記事(ほとんど無いけど)の説明力が無さ過ぎなのと、 丁寧語が気持ち悪いので、どちらも以後気をつけます。 で、半年以上の間の進捗はどうなんだというと、 当に進捗が遅く、やっと指し手生成が出来たところ。 Core 2 Duo T8300 2.40GHz で 500万回の指し手生成の結果、 72 万回/秒 magic bitboard使用, SIMD不使用 となっております。 予想以上に遅くて悲しくなるな。 比較の為にボナンザも測りたいけど、その為の改造してないので測れない… ずっと開発してた訳では無いにしても、開発が遅すぎるので、もうちょっと時間取って開発をスピードアップしないと。 来年のコンピュータ将棋選手権出たいし。 追記 なぜか -DNDEBUG を付けて assert を除くと遅くなることに。

    指し手生成 - hiraoka64’s blog
  • 解決! - hiraoka64’s blog

    昨日の記事を http://d.hatena.ne.jp/issei_y/20110116#c で取り上げて頂きました。 新しい Bitboard レイアウトの発案者の issei_y さんに、 マジックナンバーが見つからないことを伝えたところ、 シフト量を減らして、テーブルサイズを大きくすることで 解決すると教えていただきました。 こんな簡単に解決出来るとは・・・ 当にありがとうございました。助かりました。 質問して良かった。

    解決! - hiraoka64’s blog
  • 将棋ソフト始めました。 - hiraoka64’s blog

    将棋ソフト(思考エンジン)を開発しようと思います。 世界コンピュータ将棋選手権には毎年沢山の参加者がいるようで、 上位ソフトは、対局さえ実現すれば、今すぐにでもプロに勝つ可能性があります。 最も後発の自分の将棋ソフトでオリジナリティを出すのも難しそう。 とりあえず目標 ・ボナンザより強い ・ボナンザよりコードが読みやすい。 ・Windows, Linux 両方で動作 ・ソースコード公開(ある程度出来上がってから) ・捌きを重視した棋風 一年くらいで形になれば良いんですけどね。

    将棋ソフト始めました。 - hiraoka64’s blog
  • hiraoka64’s blog

    「コンピュータ将棋 Advent Calendar 2016」のトップバッターの平岡です。よろしくお願いします! 「コンピュータ将棋 Advent Calendar 2016へのリンクはこちら。 http://www.adventar.org/calendars/1457 コンピュータ将棋を初めて6年弱になるので、色々とダラダラ振り返っていこうと思う。 僕がコンピュータ将棋を始めたきっかけから。 2008年に大学卒業して会社に入り、しばらくして、お仕事でプログラミングする事になったので、Cの勉強してた。 ちょうどBonanzaのソースコードが公開されたのでCの勉強がてらBonanzaを読んでいた。 GUIのアプリとか作れる気がしなかったし、Bonanzaは複雑だけれど、コマンドラインのアプリとして丁度よかった。 C++ではなくCだったのも、当時は読む為の心理的障壁が少なくて良かった。 仕事

    hiraoka64’s blog
  • 1