リファレンス(基本コマンド編)

Edaxのコマンドについて、ヘルプの説明だけではよくわからないものもあるので、仕様を整理してみました。コマンドにもいろいろな種類がありますが、今回は基本的なコマンドについて整理しました。それ以外のものについては下記リンクを参照ください(リンク切れのものは未作成です)

対局系コマンド

init (i)

書式

init

盤面を初期状態に戻し、新たなゲームを開始します。

new (n)

書式

new

盤面をsetboardコマンドで指定した開始局面に戻し、新たなゲームを開始します。setboardコマンドを実行していない場合は、initと同じ効果です。

setboard

書式

setboard 開始局面

newコマンドを実行した際の開始局面を指定します。開始局面を設定し、newまで実行されたのと同じ効果を持ちます。開始局面の書式は、盤面を表す64文字と手番を表す1文字から成り立つ計65文字の文字列で、盤面の64文字はA1,B1,C1,…,H8の各マスについて以下の文字を並べた文字列です。

  • b,B,x,X,* : 黒石のあるマス
  • o,O,w,W : 白石のあるマス
  • -,. : 空マス

上記以外の文字は無視されます。手番を表す1文字は、黒なら“b”,“B”,“x”,“X”,“*”のいずれか、白なら“o”,“O”,“w”,“W”のいずれかを指定します。

実行例

setboard ---------------------------O*------O**-----O--------------------*

最後の*が黒番であることを、その前の64文字が盤面を表します。

undo (u)

書式

undo

1手戻します。modeコマンドにより人対Edaxになっている時は2手戻します(つまり、1つ前の自分の手番まで戻ります)。

redo (r)

書式

redo

undoで戻した手を再度1手進めます。modeコマンドにより人対Edaxになっている時は2手進めます。

play

書式

play 手

指定した手を打ちます。複数手を指定することも可能です。手はa1〜h8の形式で入力し、大文字小文字は問いません。パスを入力する場合はpaまたはpsと入力しますが、明示的にパスを入力しなくてもパスの局面であればEdaxが自動的にパスだと判断して先に進めてくれます。

実行例

play f5d6c3d3c4

書式

打つ手をa1〜h8の形式で入力します。大文字小文字は問いません。パスを入力する場合はpaまたはpsと入力します。playコマンドとは異なり、1手だけ進めることができます。

force

書式

force 手

Edaxが序盤に打つ手を指定します。手の書式はplayと同様で、複数手を指定することも可能です。goコマンドを実行した時に、forceで指定されている範囲であればEdaxは指定された手を打ちます。

実行例

force f5d6c3d3c4

go

書式

go

Edaxに1手打たせます。Edaxは以下の優先順位で打つ手を決めます。

  • forceコマンドで指定された手
  • Bookが使用可能であり、Bookに登録された局面であれば登録されている手
  • 指定されたレベルで探索を行った最善の手

mode (m)

書式

mode モード番号

黒と白のどちらをEdaxが持つかを指定します。モード番号の意味は以下の通りです。

  • 0 : 黒-人, 白-Edax
  • 1 : 黒-Edax, 白-人
  • 2 : 黒-Edax, 白-Edax
  • 3 : 黒-人, 白-人

Edaxの番になると、Edaxは自動的に手を打ちます。特にmodeを2にすると終局まで自動的に進みます。

実行例

mode 2

stop

書式

stop

Edaxの探索を止めます。プロンプト(>)が出ていない状態でも入力して実行することができます。自動対局、goコマンド、hintコマンド等でEdaxが探索していて、その探索を中止したい場合に実行します。このコマンドを実行すると、modeは3に戻ります。

quit (q) または exit

書式

quit
exit

Edaxを終了します。quit,exitのどちらでも構いません。

eof[隠しコマンド]

書式

eof

Edaxを終了します。以下の条件を満たす場合のみ機能します(実質的に常に機能するものと思われます)。

  • auto-quitオプション(これも隠しオプション)が指定されていない
  • かつ、modeが2以外であるか、終局状態のいずれかを満たす

対局補助コマンド

hint

書式

hint ヒント数

その局面の候補手とその評価値を出力します。いくつ候補手を出力するかをヒント数に指定します。ヒント数を指定しなかった場合は1つ出力します。候補手は以下の優先順位で出力されます。

  • Bookが使用可能であり、Bookに登録された局面であれば登録されている手を評価値が良いものから順番に出力
  • 指定されたレベルで探索を行った手を評価値の良いものから順番に出力

実行例

>hint 6

 depth|score|       time   |  nodes (N)  |   N/s    | principal variation
------+-----+--------------+-------------+----------+----------------------
book    +0                                          G6 f8 C5 c6 B4 g5 H6 d2
book    +0                                          C5 b6 D8 c6 C7 d2 B5 a5
book    -4                                          G5                     
book    -6                                          C6 c5                  
21@73%  -02        0:02.473      36325175   14688708 B3 e3 E2 g4 G3 f2 B5 f8 H5
21@73%  -03        0:00.055        556316   10114836 B5 d2 E2 c5 G6 g5 F7 f8 C6
------+-----+--------------+-------------+----------+----------------------

analyze (a) または analyse

書式

analyze
analyse

現在の局面から初手まで遡って、棋譜内容を解析します。実際に打った手と、それ以外の最善手の比較表が出力されます。出力される表の意味は以下の通りです。

  • ply
    • 何手目の手か
  • level
    • Edaxが解析した際の読みの深さとselectivity。Bookは使われないようです。参考:レベルの意味
  • N alt.
    • 実際に打った手以外の候補手の数。対象形などで実際に打った手と同じになる手は数から除外されています。
  • played move/score
    • 実際に打った手とその評価値。
  • alternative move/score
    • 実際に打った手以外の候補手でEdaxが探索した結果、最善と判断した手とその評価値。左側に、実際に打った手の評価値との比較が等号・不等号で出力されます

表の右側にコメントがついているのは、実際に打った手よりEdaxが探索した手の方が評価値が高かった場合のもので、コメントの意味は以下の通りです。

  • Mistake
    • Edaxが完全読み(最終局面まで読み、かつselectivity=100%)したもの
  • Possible mistake
    • Edaxが最終局面まで読み、かつselectivity<100%のもの
  • Edax disagrees (strongly)
    • Edaxが最終局面まで読んでいない場合。stronglyは評価値の差が5以上ある場合に出力されます

最後に出力される集計表には、黒と白のそれぞれについて以下の項目が出力されます。

  • rejections : discs
    • rejectionsの分母は、候補手が存在する局面(N alt.≠0)の内、Edaxが完全読みしていない数(つまり序中盤まで)
    • rejictionsの分子は、その中でEdaxの探索した手の方が評価値が高かった手の数
    • discsは、Edaxの探索した手の方が評価値が高かった手の、実際に打った手との評価値の差の累積(終盤でいう石損)
  • errors : discs
    • errorsの分母は、候補手が存在する局面(N alt.≠0)の内、Edaxが完全読みした数(つまり中終盤)
    • errorsの分子は、その中でEdaxの探索した手の方が評価値が高かった手の数
    • discsは、Edaxの探索した手の方が評価値が高かった手の、実際に打った手との評価値の差の累積(石損)
  • error rate
    • errorsのdiscs / errorsの分母で算出される値。つまり1手あたりの石損

実行例

> analyze


              N     played        alternative
ply  level   alt. move  score     score   move
---+-------+-----+-----------+--+---------------
 60    0      0    a8    +26                                                  
 59    0      0    B7    -26                                                  
 58    3      2    d1    +26   >   +18     a8                                 
 57    4      1    G8    -26   >   -30     B7                                 
 56    5      3    h8    +26   =   +26     d1                                 
 55    6      1    G7    -26   =   -26     B7                                 
 54    7      4    a7    +26   >   +12     g8                                 
 53    8      1    B1    -26   <   -10     B7 <- Mistake                      
 52    9      6    a1    +10   <   +14     g8 <- Mistake                      
 51   10      2    B2    -14   >   -20     G7                                 
 50   11      7    g1    +14   >    +0     g8                                 
(中略)
  5   21@73%  5    C4     +1   >    -4     C6                                 
  4   21@73%  3    d3     -1   >    -2     g5                                 
  3   21@73%  4    C3     +1   >    +0     C4                                 
  2   21@73%  2    d6     -1   <    +0     f6 <- Edax disagrees               
  1   21@73%  0    F5     +0                                                  

      | rejections : discs | errors    : discs | error rate |
Black |  10 /  17  :   +34 |   5 /  11 :   +42 |      3.818 |
White |  10 /  18  :   +28 |   3 /  11 :   +22 |      2.000 |

vmirror[隠しコマンド]

書式

vmirror

盤面を上下反転します。

hmirror[隠しコマンド]

書式

hmirror

盤面を左右反転します。

rotate[隠しコマンド]

書式

rotate 角度

盤面を指定された角度だけ反時計回りに回転します。角度は90,180,270が指定可能です。

実行例

rotate 90

symetry[隠しコマンド]

書式

symetry 対称パターン

盤面を指定された対称パターンに従って対称移動します。対称パターンは0〜15の範囲で指定可能です。対称パターンの意味は以下の通りです。

  • 0: 元の配置のまま
  • 1: 左右反転
  • 2: 上下反転
  • 3: 反時計回りに180度回転
  • 4: ホワイトラインを軸に反転(線対称移動)
  • 5: 反時計回りに90度回転
  • 6: 反時計回りに270度回転
  • 7: ブラックラインを軸に反転(線対称移動)

8〜15は上記でさらに黒と白を入れ替えた状態になります。

実行例

symetry 3

opening[隠しコマンド]

書式

opening

現局面までの定石名(英語名)を表示します。既に定石を抜けた局面でも、抜ける直前の定石名が表示されます。

ouverture[隠しコマンド]

書式

ouverture

現局面までの定石名(フランス語名)を表示します。既に定石を抜けた局面でも、抜ける直前の定石名が表示されます。

debug-pv[隠しコマンド]

書式

debug-pv 手

指定した手(a1〜h8)について、その後の最善進行例を出力します。名称からすると作者のデバッグ用のコマンドと思われます。出力される情報は、探索結果を一時的に記憶しておくhashと呼ばれるメモリから取得しているため、予めhintコマンド等で該当手の探索を行っておく必要があります。

実行例

>debug-pv c2

pv = C2 g5:20@73%[+07,+07]; C6:19@73%[-07,-07]; e3:18@73%[+07,+07]; D7:17@73%[-07,-07]; c5:16@73%[+07,+07]; E6:15@73%[-07,-07]; d2:14@73%[+07,+07]; G6:13@73%[-07,-07]; f7:12@73%[+07,+07]; B5:11@73%[-07,-07]; e7:10@73%[+07,+07]; F8:09@73%[-07,-07]; b4:08@73%[+07,+07]; A3:07@73%[-07,-07]; e2:06@73%[+07,+07]; B3:05@73%[-07,-07]; h6:04@73%[+07,+07]; G4:03@73%[-07,-07]; 

出力される内容は、手、探索の深さ、selectivity、評価値の上限と下限(この意味は未調査)です。

ファイル操作系コマンド

save (s)

書式

save ファイル名

現在の対局の棋譜を保存します。保存形式はファイル名の拡張子によって決まります。以下の拡張子で保存することができます。

  • .txt
  • .ggf
  • .sgf
  • .pgn
  • .edx
  • .eps
  • .svg

.eps.svgは画像形式です(画像で保存できるというのは初めて知りました)。

実行例

save kifu.txt

open (o) または load

書式

open ファイル名
load ファイル名

指定された棋譜ファイルを読み込みます。openでもloadでも機能は同じです。拡張子によってファイル形式を判断しています。以下の拡張子を読み込むことができます。

  • .txt
  • .ggf
  • .sgf
  • .pgn
  • .edx

実行例

open kifu.txt

その他のコマンド

help (?)

書式

help 対象カテゴリ

ヘルプを出力します。対象カテゴリは以下が指定可能です。

  • options : オプションに関する説明
  • commands : 基本コマンドに関する説明
  • book : Book関連コマンドに関する説明
  • base : データベース関連コマンドに関する説明
  • test : テスト系コマンドに関する説明

対象カテゴリを省略すると、すべてのヘルプが出力されます。

実行例

help commands

version (v)

書式

version

バージョン情報を出力します。

turupeta, 2018/02/09 10:39

返信ありがとうございます☆ミ とりあえず先日はネットでいろいろ調べて自分でつくってみました!lavoxさんの超丁寧なこのサイトと色んなサイトのおかげでコマンドも使えましたヽ(^。^)ノ bookて要するにその局面からの最善手だったり評価値だったりを高いレベルで計算させて保存させておくことができるedaxから見ればまさに本みたいなものですね。まあ細かいことはよくわかりませんがヽ(^。^)ノ とりあえず先日はレベル37深さ40でf5d6から始まる最善手進行とf5f4で始まる進行をb deviateで全部保存しました!やりかたあってるかわかんないけどとりあえずb fixとかb pruneやっときました。 評価値が自分みたいなゴミにもったいないくらい正しくなって満足です これからもお友達と対戦したりうまいひとの進行などをbookにしつつ世界一をめざします(´・ω・`)

lavox, 2018/02/09 22:48

お役に立ったようで幸いです。

最善進行は問題ないですが、b pruneは最善でない進行を削除する可能性があるのでご注意ください。

オセロ、最近盛り上がってきているようなので、お互い頑張りましょう!

lavox, 2018/02/03 13:47

どうもありがとうございます。

ネット上にedaxについて書かれた記事はありますが、コマンドの説明的なものが見つからなかったので情報を整理してみました。参考にしていただけると幸いです。

bookの作り方等についてはネット上にもいろいろと参考になる情報が見つかると思います。umigame先生の黒引き分け勝ちの記事などを参考にされてはいかがでしょうか。

turupeta, 2018/01/30 05:59

こんにちは!どの記事もクオリティがすごすぎてびっくりですwwww 自分は今年くらいからオセロ始めたガチの初心者ですが、オセロの世界の深さ?にびっくりしてます。強い人はクソみたいよ強いし、ネット対戦楽しすぎですよね。で、オセロはソフトがかなり強いらしくてbookしだいでは更に強くすることもできる?と聞いてわくわくしました。実は自分の家にはなぜかデスクトップのスペックよさげなGANTZみたいなパソコンがあって、誰も使ってないしせっかくなのでbookの強化にガンガン使いたいなと思ってるのですがどっから手を付けていいのかわかりません><とりあえずコマンド覚えてます。やるなら徹底的にやりたいなと思ってるのですが、1から最強のbookを作る最も効率のいい方法を教えて下さい!

ログインするとコメントできます。
  • edax/ref_command_basic.txt
  • 最終更新: 2018/05/28 21:51
  • by lavox