2019-01-01から1年間の記事一覧

炎上案件への介入の仕方(20年前の方法論)

最近,コンピュータ将棋関連で知名度が上がってプロ棋士始め一部の方から「天才プログラマー」などと呼ばれることがあります。ここ20年プログラムを書くのは基本的に自分の研究のためのツールとしか考えておりませんでした。 が,そういえばプログラマーらし…

Go言語将棋の進捗

bleu48.hatenablog.com python-shogiをベースにpythonで作った簡単な探索部を作って簡単な実験をしていたのが2年ほど前。見やすい簡単なプログラムなので改造等は簡単だが,相当遅いので色々と処理速度に不満があった。(もちろん今でも色んな評価関数の試…

続・指し手生成祭

bleu48.hatenablog.com あまり手を入れる気がなかったのだが,ふと思いついた高速化手法を試してみた。 開発機をCoffee Lakeに移行したのもあって前回200k/s程度であったものが一気に600k/sを超えてきた。たぶん半分くらいはPCの性能のお陰である。 ただ,駒…

Leela Zeroな話

以前,Leela Zeroプロジェクトみたいなのを手伝いが居たら立ち上げたいとかヌルいことを言っていた気がする。チェス盤のLCZeroのソースとかをゆるゆる眺めていた程度だ。改変箇所をリストアップした程度で表に出せるようなものは特にない。 まぁ,他の人は知…

YSS戦

wdoor.c.u-tokyo.ac.jp 二連勝で喜んでいたら,四連敗である。(うち3局は同じ将棋w) その後,勝てそうな将棋を千日手。 そういえば前のバージョンも打ち歩詰めで負けてから打ち歩詰め回避ルーチンを盛り込んだな。実装しないつもりだったけど,そろそろ千…

検討用のMultiPV実装について

近頃うちの子(スクラッチで作ってるGo言語プログラム)がそこそこまともに動くようになってきたので調子に乗って検討に使えるように改造してみた。 go infinite対応とMultiPV対応である。 shotgunやHefeweizenでも両方非対応である。(一説にはそれでニコ生…

2六歩の妙

温故知新シリーズに入れていいネタかもしれない。 5月の選手権に向けて無作為な試行錯誤をする最終段階近い。 評価関数の数式をオリジナルのものを数パターン試行しているが,そこそこ使えそうな雰囲気のものが出来てきている。昨年のHefeweizenに勝てない…

コンピュータ将棋のブルーオーシャンについて

コンピュータ将棋界のレジェンドのひとり伊藤英紀さんの記事が出てた。 FPGA実装などされてる文字通り鬼才である。 個人的に面白そうに思っているがハードルが高いイメージのせいか実装を確認することはまだできていない。 リンク先には難しい話はないのでpd…

温故知新(4)

意外に続いているシリーズになってる。 今回は割と具体的に手を動かす作業。 Java将棋のアルゴリズム―アルゴリズムの強化手法を探る (I・O BOOKS) 作者: 池泰弘 出版社/メーカー: 工学社 発売日: 2016/08 メディア: 単行本 この商品を含むブログを見る 実は…

ディープラーニング用のPCスペックについて

エースに申し訳ない仕事させてる pic.twitter.com/pBmKXI6JBW — 48 (@bleu48) March 5, 2019 pytorchで学習させているんだが,GPUの学習よりモデルに食わせるデータを扱うpythonのコードが時間かかってCPUもGPUもあんまり負荷がかかってない。 敢えて言うと…

1足す1が2にならない世界

近頃カーネマンにハマっているので認知バイアス関係なんだけど, 非線形なものに対する直感ってのは慣れていないと難しい。 ロケットブースターを2倍にしてもロケットの加速度は2倍にならないし,エンジン馬力を2倍にしても車の最高速度は2倍にならない…

選手権のルールに関して(ポエム)

bleu48.hatenablog.com 運営側がルール関してアンケートや個別意見の吸い上げを行った後に個々に不平を言うのは迷惑でしかないので自粛してる。以下は個人の感想である。 まぁ,一般的な意見だが見慣れないやつが優勝したらルール改正が行われる。 モーター…

温故知新(3)

また,古い書籍の整理を再開する。 将棋とコンピュータ (情報フロンテイアシリーズ) 作者: 松原仁 出版社/メーカー: 共立出版 発売日: 1994/07 メディア: 単行本 クリック: 2回 この商品を含むブログを見る p.51 ここぞという局面ではじっくり深く読まなくて…

pytorch入門

まぁ,ツールの開発者じゃないので使いやすいツールを見つけては使い倒す方です。 触ったことがなかったので今年のコンピュータ将棋の学習部はpytorchで作ってみようかと思います。(今からで間に合うのかどうか分かりませんが仕事じゃないので気楽なもんで…

numpy.shuffleのメモ

import numpy import random with open('generated_sfens.bin', 'rb') as f: data = numpy.fromfile(f, dtype='int8').reshape(100000000, 40) numpy.random.shuffle(data) with open('shuffled_sfens.bin', 'wb') as f: data.tofile(f)

負数の剰余

shunirr.hatenablog.jp 随分久しぶりに地雷を踏んだ。 CおよびC++では -5 % 3 = -2 5 % -3 = 2 RubyおよびPythonでは -5 % 3 = 1 5 % -3 = -1 そもそも商が違うのだ。 CおよびC++では -5 / 3 = -1 5 / -3 = -1 Pythonでは -5 // 3 = -2 5 // -3 = -2 つまり…

温故知新(2)

学生さんの卒論もあった色々と過去の調べ物をしている。 手に入る情報だけで追っかけて調査しているので,当時詳しい方には是非間違っている点があったら是非指摘していただきたい。 floodgateの長手数の将棋に関して 2011年,2012年辺りは稲庭将棋による長…

温故知新

ふと,一昨年はじめたコンピュータ将棋にどっぷりです。 まぁ,学生の卒論ネタもあって関連書籍を可能な限り集めてみたついでに,私も歴史を学んでみることにしました。 比較的古いのから紹介します。 コンピュータ将棋―あなたも挑戦してみませんか (Informa…

今年の選手権の話でも

第29回世界コンピュータ将棋選手権にエントリーしました。 恥ずかしながら昨年王者第一シードで御座います。 www.apply.computer-shogi.org 一昨年が電王トーナメント準優勝。 昨年が世界選手権優勝。 どちらも初参加ですが,相当雰囲気が違います。 電王ト…

シングルスレッド性能が速いのが欲しいときがある

Pythonで色々処理してると多コアが全く役に立たないことが多い。 自前で用意したシミュレーション系ツールも並列化してないと同様。 つまりシングルスレッド性能でしか生かされない。 そういうこともあろうかと,Skylake世代でKプロセッサを仕入れてたんだけ…

合法手の話

その昔,"指し手生成祭"という祭があったようです。(詳しくはググってください。) 将棋の局面で反則にならない手が何種類あるかってのをリストにする速度を競ってたそうです。私は先日Go言語で組んだのだとざっくり200kくらいが最高値でした。たぶん一桁負…

Apery調査の件

まず,遊び道具を提供下さった平岡さんに感謝します。 思えば三年前になるんですね。教師データの作成依頼のツイートが流れてきたのが,そもそも私がコンピュータ将棋に触れるきっかけでした。 ダイアリーの方からインポートされた記事があるのでリンク残し…

チェスのエンドゲームの話

囲碁とチェスの終盤はシンプルだって話は何回かしてる。 コンピュータ将棋の調べもの(主に自分用メモ) - 48's diary 将棋とチェスの違い(Stockfishを参考に探索部を強化する際の注意点) - 48's diary シンプルって言っても程度があって五目並べやオセロ…

Go言語で配列のメモリイメージをそのままファイルから読む

golangでint32のバイナリ配列をそのままファイルIOすんのできない?https://t.co/XEMfG9ObUXが意外に重い。 — 48 (@bleu48) January 12, 2019 その後解決したのでメモっておく。 参考にしたのは以下のところ。 qiita.com 要点だけ引っ張ったコードが以下にな…

Go言語雑感

Go言語について入門書のチュートリアルくらいはちょっとやってたんだけど,実用でどのくらい使えるかテストしてみました。 ターゲットは例の如く将棋ですね。 どっかの移植でも面白くないので,池さんの参考書やらオープンソースの他のソフトを適当に読み散…

新年の抱負

「過去現在、そして下手したら今後数年の未来までも含めて史上最強の将棋プログラムになるかもしれない。」ってやね師匠が言うてます。 やねうら王、新年の抱負を語る | やねうら王 公式サイト ウチは昨年の探索部の検証データが揃ってから,今年の探索部を…