TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

cshogi

cshogiのサンプルプログラム(αβ法)

先日、cshogiにMinMax探索のサンプルプログラムを用意した。 今回は、駒得のみの評価で3手読みするαβ法のサンプルプログラムを用意した。 リポジトリ github.com αβ法のサンプル from cshogi import * import random PIECE_VALUES = [ 0, # NONE 100, # BPAW…

cshogiのサンプルプログラム(MinMax探索)

先日、cshogiにドキュメントを追加して、初めての方にも使いやすくした。 リファレンスのみだととっつきにくいので、使い方を理解できるように以下の2つのサンプルプログラムを用意した。 ランダムで終局まで指すサンプルプログラム 駒得のみで評価する3手読…

GPT4を使ってcshogiにドキュメントを追加

オープンソースで開発しているPythonの将棋ライブラリcshogiにドキュメントを追加した。tadaoyamaoka.github.io今まで、READMEと強い将棋ソフトの創り方に主要な部分のみ説明を記載しているくらいで、詳細なドキュメントがなかった。今回、全体的にコードにd…

cshogiをGitHub ActionsでビルドしてPyPIに公開する

Pythonの将棋ライブラリcshogiをPyPIで公開しているが、PyPIに公開するまでの手順が多いため、GitHub Actionsを使って自動化を行った。 前提 cshogiは、CythonとC++を使用しているため、ビルドが必要になる。 WindowsではVisual Studioが必要になる。 Linux…

cshogiにWebアプリを追加

開発しているPythonの高速な将棋ライブラリcshogiに、ブラウザでUSIエンジン同士の対局が行える機能を追加した。 python -m cshogi.web.app --engine1 E:\game\shogi\gikou2_win\gikou.exe --engine2 E:\game\shogi\apery_wcsc28\bin\apery_wcsc28_bmi2.exe …

cshogiにリーグ戦モードを追加

プログラムの修正やモデルを学習した後の強さの計測に変更前後の自己対戦のみだと、系統が違うソフトに対して強くなっていないことがあるため、基準となるソフトを加えたリーグ戦で確認を行っている。連続対局には、cshogiを使用して、PGNファイルを出力して…

Likelihood of superiorityについて

昨日の記事でcshogiに、2つのプログラム間の連続結果からLOS(Likelihood of superiority)の算出を実装したことを書いたが、その計算式は、チェスで使用されている式をそのまま適用した。 LOSについて 測定された勝率がどれくらい確からしいかを表したのがLOS…

cshogiにElo rating測定機能を追加

Cythonを使った高速なPythonの将棋ライブラリcshogiに、Elo rating測定機能を追加した。 誤差とLOS 連続対局を行い、Elo ratingと誤差(95%信頼区間)をレポートする。 何%の確率で強いと言えるかを表すLOS(Likelihood of superiority)も表示する。 LOSが95%を…

cshogiをOpenAI Gymインターフェースに対応させてみた

強化学習の勉強をしていてアルゴリズムを実装して試してみたいが、CartPoleとか学習させても面白くないのでせっかくなので将棋で試せるようにしてみたくなった。ということで、cshogiをOpenAI Gymインターフェースに対応させてみた。 Gymインターフェース 公…

cshogiにやねうら王の教師局面の入出力機能追加

cshogiには、やねうら王の教師局面(PackedSfenValue)を読み込む機能を実装していたが、指し手を正しく扱えていなかった。 Twitterで報告いただいたので、対応を行った。教師データそのまま(バイナリ)とテキストに変換したもので局面の読み込みは100%で不一…

cshogiのビルド済みパッケージ

cshogi(Pythonの高速な将棋ライブラリ)をインストールするには、CythonとC++コンパイラが必要で、コンパイルに時間がかかっていた。 Google Colabでインストールを実行すると1分近く待つ場合があった。そこで、待ち時間をなくしてすぐに試せるように、ビル…