|
(GPS将棋開発参加記録)
|
ふと気づいたらshogi-serverが固まっていたので再起動しました。9試合進行中だったようです。ご迷惑をお掛けした方すみません。原因が分からない不具合は久々で、ちょっと心配です。
なんと優勝してしまいました。幸運に恵まれた結果だと思いますが、とても嬉しく思います。応援していたいただいた方ありがとうございます。
思い起こすと、毎年だいぶ改良したつもりで臨んでも他のチームの改良がそれを上回り決勝に進めないことの繰り返しでした。そんな中でも、決勝の棋譜は自分たちの二次予選の棋譜よりずっと綺麗な将棋だなあと感じていました。今回のGPS将棋にはきっと変な手もあったと思いますが、プロの方に褒めていただけた指手もありそのことが嬉しかったです。
当日は既に午前中の時点で望外の結果に動揺を抑えられない心境でした。お見苦しい点もあったかと思いますが、どうかご容赦ください。
_ コンピュータ将棋協会blog:世界コンピュータ将棋選手権戦記2009 早稲田大学で行われた、第19回世界コンピュータ将棋選手権。昨年に引き続き、現時点でリリースされている開発者の自戦記を..
(GPS将棋の特徴などついて徐々に説明をまとめて行く予定です)
今後加筆します。
評価項目の簡単な説明は林くん作成の以下をご覧ください。評価項目は、主に林くんの閃きによるものですが、Bonanza、棚瀬将棋、奈良将棋、Blunderなど公開されている情報も参考にしています。
序中終盤共通の値 PieceEvalComponent 駒の価値 PiecePair 2駒の関係。駒の座標に関係ないものと、X座標固定とY座標固定 King25EffectAttack 玉の25近傍の攻撃側の利きの数(max 127)とそこに利きを付けてる駒(max 16)の組み合わせ King25EffectAttackY King25EffectAttackを玉のY座標別に ProgressBonus2 進行度による先後の進行度(0から15に正規化)の組み合わせ ProgressBonusAttackDefense 各玉の、攻撃側の進行度と、防御側の進行度の値の組み合わせ ProgressBonusAttackDefenseAll 両方の玉の、攻撃側の進行度と、防御側の進行度の値の組み合わせ 序中終盤別の値 PieceStand 持駒の種類別の枚数 Pin 動くと王手になってしまう駒を種類と玉からの相対位置別に King25EffectEach 玉の25近傍の各桝で、どちらの駒があるか空白か、と、利きで勝ってるか負けてるか同じかの組み合わせ PawnDropDefense 歩を打てる筋の自玉とのX軸の相対位置 PawnDropAttack 歩を打てる筋の相手玉とのX軸の相対位置 NoPawnOnStand 歩切れでかつ歩の枚数で負けているときの点 GoldRetreat 下がれない金を金のY座標別に SilverRetreat 下がれない銀を銀のY座標別に KnigtAdvance 跳べない桂を桂のY座標別に AllMajor 大駒を全部持っているときの点 KingXBlocked 玉が左右どちらかに行けないときの点、玉のX座標別 KingXBlockedY KingXBlockedを玉のY座標別に AllGold 金を全部持っているときの点 PtypeX 各駒の種類につき、あるX座標にいるときの値 PtypeY PtypeXと同様に、Y座標別に AnagumaEmpty 隅に居るときのまわりの3桝が空白かどうか NonPawnPieceStand 歩以外の持駒の合計枚数 King25EffectDefense 玉の25近傍の防御側のの利きの数(max 127)とそこに利きを付けてる駒(max 16)の組み合わせ King25EffectYDefense King25EffectDefenseをY座標別に RookMobility 飛車がX軸とY軸で動ける桝の数 BishopMobility 角が動ける桝の数 LanceMobility 香車が動ける桝の数 RookEffect 飛車の利きがある桝を相手玉との相対位置で評価 RookEffectDefense 飛車の利きがある桝を自玉との相対位置で評価 BishopEffect 角の利きがある桝を相手玉との相対位置で評価 BishopEffectDefense 角の利きがある桝を自玉との相対位置で評価 PawnAdvance 前に進めない歩をY座標別に PawnDropYAttack 歩の打てる筋の相手玉からのX軸の相対位置を玉のY座標別に PawnDropYAttack 歩の打てる筋の自玉からのX軸の相対位置を玉のY座標別に KnightCheck 桂馬で王手がかかるかどうか PieceKingRelativeBoth ある駒の盤上での各玉からの相対位置 NonPawnPieceStandCombination 歩以外の持駒の種類別の枚数の組み合わせ NonPawnPieceStandTurn 歩以外の持駒の種類別の枚数を手番別に King25EffectEachX King25EffectEachを玉のX座標別に King25EffectEachY King25EffectEachを玉のY座標別に RookPawnY 飛車のY座標とその筋の歩のY座標 RookEffectPiece 飛車の利きが付いてる駒 BishopEffectPiece 角の利きが付いている駒 RookEffectPieceKingRelative 飛車の利きが付いている駒を玉からの相対位置で BishopEffectPieceKingRelative 角の利きが付いている駒を玉からの相対位置で RookPawnYX RookPawnYを玉からのX軸の相対位置で PawnPtypePtype 歩の前の駒とその前の駒の組み合わせ CanCheckNonPawnPieceStandCombination 王手がかかりそうなときの歩以外の持駒の組み合わせ PromotedMinorPieces 相手玉と同じ側にある2枚目以降の小駒の成駒の相手玉からのX軸の相対位置 PieceKingRelativeNoSupport 紐がついてない駒の各玉からの相対位置 NonPawnAttacked 相手からの利きがついている歩以外の駒を手番別に PtypeYY 各玉のY座標別に駒のY座標で評価 PawnPtypePtypeY PawnPtypePtypeを歩のY座標別に PawnDropX 各玉のX軸別に、歩を打てる筋のX軸の評価 King3Pieces 縦、横、斜めの玉を中心とする連続した三駒の評価 King3PiecesXY King3Piecesの玉のX座標別のものとY座標別のもの King25EffectEachXY King25EffectEachの玉のX座標別とY座標別のもの BishopHead 角の頭に味方の利きがないときにそこにある駒 BishopHeadKingRelative BishopHeadを自玉との相対位置で KnightCheckY 玉のY座標別に桂馬で王手がかかるときの評価 KnightHead 桂の頭に相手が歩を打てそうなときに、桂のY座標別に評価 RookPromoteDefense 飛車成りを受けている駒と、その駒に利きをつけている駒の種類 PawnDropPawnStand 持駒に歩があるときに、各玉からのX軸の相対位置で歩を打てる筋を評価 PawnDropPawnStandX PawnDropPawnStandを玉のX座標別に PawnDropPawnStandY PawnDropPawnStandを玉のY座標別に King25Effect2 玉の25近傍の攻撃側の利き(max 63)と、利きを付けている駒の数と、持駒の飛車角金銀の数の合計の組み合わせ King25EffectY2 King25Effect2を玉のY座標別に KnightHeadOppPiecePawnOnStand 桂頭に相手の駒があって、相手の持駒に歩がある場合に、桂馬のY座標と、相手の駒の種類別に評価 KingXBothBlocked 玉が両側に動けないときに玉のX座標別に評価 KingXBothBlockedY 玉が両側に動けないときに、玉の絶対座標で評価 KingRookBishop 王と飛車の相対位置と王と角の相対位置の組み合わせ PromotedMinorPiecesY PromotedMinorPiecesを各玉のY座標別に King25EffectSupported 玉の25近傍にある攻め駒の枚数と利きの付いてる攻め駒の枚数の組み合わせ King25EffectSupportedY King25EffectSupportedYを玉のY座標別に NonPawnAttackedKingRelative 歩以外の相手の利きがある駒を各玉との相対位置で NonPawnAttackedPtype 歩以外の相手の利きのある駒を、利きを付けている駒の種類別に PtypeCount 駒の種類別に、盤上にある数と、持駒も含めて持っている数を評価 PtypeCountXY PtypeCountを自玉のX座標別とY座標別に PtypeCountXYAttack PtypeCountXYと同様、相手玉版 LanceEffectPieceKingRelative 香の利きがついている駒を各玉との相対座標で KingMobility 玉の絶対座標別に各向きに続いている空白桝の数 KingMobilitySum 玉の絶対座標別に、各向きに続いている空白桝の数の総和 PtypeYPawnY 歩のY座標と、その筋にいる他の駒のY座標 GoldAndSilverNearKing 玉からある距離(1,2,3)以内の金と銀の枚数の総和 PtypeCombination 味方の駒の種類の組み合わせ PieceStandCombinationBoth 先後の持駒の持っている種類の組み合わせ King25BothSide 玉の25近傍のY軸の攻撃側の利きの組み合わせ二つを、玉を挟む形で組み合わせ(挟撃ボーナス) King25BothSideX King25BothSideを玉のX座標別に King25BothSideY King25BothSideを玉のY座標別に GoldAndSilverNearKingCombination 玉からある距離(1,2,3)以内の金と銀の枚数の総和の組み合わせ KingMobilityWithRook KingMobilityの相手の持駒に飛車がある場合 KingMobilityWithBishop KingMibilyの相手の持駒に角がある場合 NumPiecesBetweenBishopAndKingSelf 相手玉が角筋にいる場合の間にいる玉側の駒の総和 NumPiecesBetweenBishopAndKingOpp 相手玉が角筋にいる場合の間にいる攻め側の駒の総和 NumPiecesBetweenBishopAndKingAll 相手玉が角筋にいる場合の間にいる駒の総和
_ コンピュータ将棋協会blog:第19回世界コンピュータ将棋選手権者はGPS将棋 第19回世界コンピュータ将棋選手権は、ライブ中継のページ、コンピュータ将棋選手権ネット中継ブログにて報じられたとおり..
_ コンピュータ将棋協会blog:世界コンピュータ将棋選手権戦記2009 早稲田大学で行われた、第19回世界コンピュータ将棋選手権。昨年に引き続き、現時点でリリースされている開発者の自戦記を..
選手権で使ったハードウェアが戻ったので、floodgateにGPSShogi-WCSC19という名前で投入しました。時間設定と定跡以外は選手権と全く同じです。事故が無ければ400試合ほど指す予定です。
(5/16追記 345勝44敗で終了しました。途中LANケーブルが不調だったようなので交換していますが設定はずっと変えていません。レートは2699でgps_lの2472を220ポイント上回りました。以前、gps_normalとgps4cpuの差が120ポイントくらいだったことを考えると大体相場かもしれません。負けた棋譜は今後分析しますが、対戦相手別ではYSSが苦手な傾向が浮かんでいます)
_ コンピュータ将棋協会blog:世界コンピュータ将棋選手権戦記2009 早稲田大学で行われた、第19回世界コンピュータ将棋選手権。昨年に引き続き、現時点でリリースされている開発者の自戦記を..
MinGWで作られたMicrosoft Windows用のバイナリがダウンロードのページに出ているようです。
動かなかったらすみません。
(5/18追記: 動かない場合もあるようなので調査します)
メモ: 新しいスレッドを作ると16バイトアラインメントが崩れていることがあるらしいので、入口の関数で __attribute__((force_align_arg_pointer)) で調整。inline展開されないように注意。
コンピュータ将棋とは直接関係がありませんが、東京大学大学院 総合文化研究科,広域化学専攻,広域システム科学系では、修士課程・博士後期課程学生募集要項の配付が行われているようです。受験先を探している方で、コンピュータ将棋を含むゲームプログラミングの研究をしたい方は、田中哲朗研究室、もしくは山口和紀研究室(+金子)も候補にいれていただけると幸いです。
週末に接続スクリプトを書き換えて、相手の名前に human がつく時は、予測読みを行わないという設定にしてみました。floodgateは人間の方が実力を出すのは難しい条件だと思いますが、少しでも緩和されることを期待しています。そのうちgps_lにも反映される予定です。
なお、floodgate用の設定なので、選手権等では相手の名前がhumanでも予測読みをします:-)
先日のCSAの例会でfloodgateの参加プログラムのハードウェアを(名乗りたい人が)名乗る方法はないかという議論がありました。どこかにWikiをおいて誰でも編集できるようにするとか、プロトコルを拡張するとか色々なアイデアがありましたが、まだ実現していません。
YSSの山下さんから、CGOSでは"xxx_2c"の様に名前の後ろにコア数をつけていると紹介していただき、これが一番現実的かもしれません。GPS将棋も並列版を投入する際はそうしてみようと思います。
現時点でgps_lは、opteron248の1core, gps_normalはopteron250の1coreです。割と古い機器ですが、速いものは学習に投入しているので安定して使えないという事情です。Bonanzaはopteron250の2coreですね。
参考: 去年のリスト
もちろん、秘密のプログラムや秘密のバージョンの参加も歓迎です。
_ うおっちゃ [gps優勝おめでとうございます。 ところで。 5/6 17:30のBonanza vs YSSは棋譜をみると投了に..]
_ kaneko [ありがとうございます。 shogi-serverは、対局中に切断される(abnormal)と切断した側が%TORY..]