T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 公開形態を再考してみた | トップページ | macOS版TiDecompを作成 »

先にWindows版を公開

今は、macOS版EdaxBoardをWindows版から移植開発中で、既に公開準備の段階に入っているのだが、今回追加した機能についてはWindows版にも逆移植したので、先にWindows版のVer1.1.0を公開した。

今回追加したメインの機能は「データベース」機能なのだが、この追加が必要になったのは、「対局のLoop実行」オプションを「対局」-「モード」に追加したからだ。

更に、「対局のLoop実行」オプションを追加したのは何故だったのか、というと、Edax同士のセルフ対局から、Bookを構築可能にしようとしたからだ。

もっとも、そんな機能を追加しなくても、Edax単体でBookを構築したければ、Edax本家の「対局の自動学習」相当機能である「auto-store」と「対局のLoop実行」相当機能である「auto-start」をOnに設定してセルフ対局である所の「m 2」を実行すれば良い。

にも関わらず、EdaxBoardでは、本家のそういった機能は使わずに、独自機能として、「対局の自動学習」と「対局のLoop実行」用意したのだが、これは、EdaxBoardとEdaxとの同期を取れる様にする為だ。

具体的には、もし、本家の機能を使ってEdax同士のセルフ対局を行わせた場合、EdaxはEdaxBoardに何ら干渉される事なく対局を何度も繰り返せる事になるので、標準出力に出力されるテキストの量は膨大になっていく。

勿論、そういったテキストをEdaxBoardが確実に処理できるだけのマシン性能があれば良いのだが、CUIによる盤面描画とGUIによる盤面描画のどちらが軽いか? なんてのは、火を見るよりも明らかだ。

つまり、EdaxBoard的には、標準出力に出力されたテキストの処理が終わるまで、次の対局を開始してもらいたくないので、Edaxにはループ実行機能は使わせず、次の対局が可能になった時点で、自分が次の対局を開始する格好にしてある訳だ。

と、言う事で、Edax単体でBookを構築したければ、Edax本家をCUIで操作できる人なら、何もEdaxBoardの「対局のLoop実行」なんて機能を使う必要はない。

なので、EdaxBoardには、Edax本家では実現できない機能を追加する必要があった。

つまり、各対局を自動的にデータベースに保存できる機能を実装しない事には、EdaxBoardを使ってEdaxのセルフ対局でBookを構築していく! なんて事をする意味がないので、今回、「対局のLoop実行」機能の追加と同時に、データベース機能も追加する事になった訳だ。

ちなみに、Edax的には、各対局をデータベースに保存する意味は殆どないかもしれない。

何故なら、そんなデータベースがあったとしても、使い道がないからなのだが、にも関わらず、そんなデータベースを構築可能にしたのは、MasterReversi的には、このデータベースがあれば、Bookを更新できるからだ。

つまり、Edax単体でみれば、Bookの構築にEdaxBoardは必要ないのだが、EdaxBoardを使ってBookの構築をやっていれば、データベース出力結果をMasterReversiのBookに適用して、その後、エンジン対局なんかを行えば、EdaxのBookに問題があれば、修正できる可能性も高くなる訳だ。

そんな回りくどい事をしなくても、EdaxのBookはテキスト形式で出力できるのだから、そのデータをMasterReversiで読み込める様にすれば良いのでは? という声も聞こえてきそうだ。

勿論、MasterReversiにそういった機能を追加するのは難しくはないのだが、そもそも、Bookとは何だろう? という基本的な考え方が、EdaxとMasterReversiでは異なる訳だ。

具体的には、Edaxの場合、そのテキスト出力形式から、Bookというのは、ある局面の特定の着手候補に対する評価値! が登録されたデータ集、という感じになる。

一方で、MasterReversiのBookというのは、これもテキスト形式で出力してみれば判る筈なのだが、対局棋譜が登録されたデータ集、という感じになる。

Bookを使う場合、ある局面の評価値がそのまま登録されているEdaxの方が検索は簡単確実なのだが、MasterReversi的にも、内部的には、Bookは検索しやすい形にハッシュテーブルを作成して再構築してあるので、検索したい局面の盤面から簡単に検索できるし、処理に時間がかかる事もない。

両者で違いが出てくるのは、MasterReversiのBookというのは、内部的には、常に、対局棋譜をツリー状に記憶した格好になっているので、EdaxだとかWZebraなんかにあるNegaMax処理は不要! という事だ。

何故なら、NegaMax処理というのは、Bookの各局面の登録をツリー状に並べて、最善進行が行われた場合に、その局面のその着手の対局結果はどうなるのか、というのを計算で求める処理になるのだが、MasterReversiでは、常に、Bookデータはツリー状に並べられていて、そのBook値というのは、そのツリーの最善進行を辿って計算されているからだ。

その結果として、MasterReversiでは、対局結果をBookに登録すると、瞬時に処理が終わり、次にBookが検索される時には、MegaMax処理が行われた場合と同一のBook値が参照可能になっている。

つまり、MasterReversiのBookというのは、EdaxだとかWZebraなんかのBookとは基本的な考え方も構築方法も完全に異なるので、EdaxのBookデータをそのまま取り込むのは危険なので、色々と検証なんかも必要になる事も鑑みれば、作者的には、そんな事はしたくない訳だ。

と、言う事で、EdaxのBook構築用の対局から、MasterReversiのBookを改善したければ、EdaxのBookデータを持ってくるよりも、対局データを持ってきた方が速いし確実なので、EdaxのBook構築は、今回の様な形で行う格好にしてみた訳だ。

なお、macOS版についても、既にリリース可能な状況なのだが、やはり、TiDecompについては、macOS版も作っておいた方が、今後、色々とソースコードを有料公開! みたいな事をしようとする場合に便利なので、今回、作っておく事にした。

TiDecompは単純なソフトなので、多分、明日中には出来ると思われるので、macOS版については、Windows版と同様に、見た目上、TiDecomp + 独自暗号化圧縮ファイルの形式で、明日か明後日には公開できる見込みだ。 

« 公開形態を再考してみた | トップページ | macOS版TiDecompを作成 »

2026年10月
日 月 火 水 木 金 土
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google