大人のための将棋再入門 5 これやっちゃあかん!な中盤

棒銀くん・中飛車くん・早石田くんなどの対策もある程度できた、よく使う戦法の使い勝手も慣れてきた、となると、あとは出現頻度の高い進行の定跡などの理解、ということになりますが、定跡書をじっくり読むのは少々面倒だし、読んでもなかなか覚えられないと思います。(私も定跡本の類は読んだことなし)
おすすめなのが、実戦ででてきて印象が強かった進行を記録しておき、ある程度ストックできたら、類型化して整理して覚える、という方法論です。
意識的に覚えようとしなくても、この手の対局は印象に残っているものなので(特に一発『喰らってしまった』対局)、対局数に比例して経験値が上がっていくと思います。例えば、こんな例。

(棋譜ファイル差し替え中)

 

言葉にすれば、『角交換後の4五桂早仕掛け』ということなんでしょうが、この手の筋は、実際の対局で経験しないとなかなか身につかないでしょう。逆に、身についてしまえば、類似進行の際に隙あらば『一発入れて』やろうという意識が芽生えるはずです。
しんねりむっつり定跡を覚えるよりは、まずは「これやっちゃあかん」な筋を覚えていく方がより実用的な気がします。

将棋実況系 YouTuber 神動画 その2

前回の続き。今回はお勉強系多め。

★アゲアゲさん

雁木VS左美濃急戦‥実況のハイテンションと相俟って終盤の寄せが圧巻。

筋違い角

対6級戦 筋違い角には腰掛銀で対抗! といいつつ居玉でがんがん攻めてます。

★アユムさん
横歩取り 青野流シリーズ
対5段戦 2二歩が感心しました。

対4段戦 必至のかけ方が目から鱗。

対イケメン5段戦 △4二玉▲1五角の筋怖すぎ

対かわいいアバター4段戦 これはちょっと応用編でしょうか

AWS 使ってみた

諸々の理由で AWS (Amazon Web Service)を使うことになった。
あまり AWS っぽい使い方でないのだが、Ubuntu 16 上に WordPress を走らせている。

WordPress 構築には、ここが大変参考になった。

 

大人のための将棋再入門 4 (居角)左美濃右四間

将棋再開後、棒銀くん・中飛車くん・早石田くんの対策がある程度できるようになると、そろそろ日常使いできる汎用性の高い戦法をマスターしたくなってくる。
お勧めは、(居角)左美濃。特に攻撃ユニット(右辺)を右四間に組む形は、陣形やその狙いがはっきりしているので真似しやすい。特に古典的な矢倉に対しての威力は絶大で、少々おかしな駒組してもウォーズ低級位レベルならほぼほぼ勝てると思う。
実際の進行例はこんな感じです。

(棋譜ファイル差し替え中)

私の子供のころは、入門書には決まって矢倉が紹介されていて、あまり疑問もなくそのように組むことが多かったが、この矢倉というのは、冷静に考えると
・囲いを組むまでに手数がかかる
・基本的に引き角なので攻撃への活用が意外にしにくい
という弱点がある。特に後者などは、下段に引いた角と入城しようとする玉がたびたび「ごっつんこ」する。だから、その駒組の不自由さは常々感じていたはずなのに、これに改良を加えようとは当時はこれっぽちも思わなかった。刷り込みって怖いね。

それはともかく攻撃時のポイントは、
・飛角(右)銀(右)桂を攻撃に参加させる
・飛車・角の大駒は大胆に切ってもよいからとにかく攻めを繋げる
ことでしょうか。ここらへんがうまくいけば、仕掛けから寄せまで割と一直線に進行する場合が多く、かなり気分よく勝てる戦法です。

細かい話をすると、「左美濃+中飛車」や「左美濃+早繰り銀」などのバリエーションもありますが、ここらへんは応用編といったところでしょう。私も勉強中です。時系列的にみると、先手番矢倉の対抗策として左美濃登場→さらにその対抗策として雁木の再評価という流れのようです。2017年現在、将棋研究のテーマの一つにもなっているようですが、級位者レベルにとってこれはテーマがいささか細かすぎる。再開最初は、まずは大雑把に全体を掴みましょう。

xampp のお手軽感がちょうどいい、からのデバッグ

最近、JavaScript づいているので、ローカルにテスト環境を構築すべく xampp を導入した。Thinble もお手軽でよかったのだが、ディレクトリ掘って複数ファイルつっこんでいくとさすがに不安定になったので。

ついでにサイトのバックアップも取ったが、それでも xampp ディレクトリのサイズは1G 未満。

これは便利。

 

さっそく、将棋山脈というところで生成された kif ファイルを JSKifuForWP で読み込めないか検討。

なんとか、コメントは kif ファイルでも読み込めるようになった。一歩前進。 “xampp のお手軽感がちょうどいい、からのデバッグ” の続きを読む

大人のための将棋再入門 3 脳内評価関数更新用早石田くん対策

ウォーズ低級位時は、相手が棒銀・中飛車・早石田を指してくる場合が本当に多い。

対策立ててないと

の局面で恐怖を覚えます。「飛車が危ない」と。

要するに、この後、どこかで▲7四歩△同歩▲2二角成△同銀と進んだ場合の▲5五角の飛車取りを予想して身構えるわけですね。例えば、こんな局面、

この場合には、△3三角打と自陣角を打つのが好手です(おそらく定跡にもなっていると思う)。

つまり、飛車を取らせるわけです。

落ち着いて考えると▲8二角成△同銀としたところで単なる飛車角交換ですし、この後、後手陣に飛車を打ち込む隙はありません。むしろ△9九角成を防ぐために後手に回ることになります。

この進行を早石田対策としてとりあえず覚えておいてもいいですし、

どんなときでも 飛車>角 → 序盤は飛車より角

というふうに脳内評価関数を更新しておきましょう。「ヘボ将棋、王より飛車をかわいがり」という言葉も有名ですね。

この後の進行はここなんか参考にしてください。

藤井二冠の飛車切り

「序盤は飛車より角」なんて書いてましたが、中盤〜終盤でも局面によっては飛車を切った方が形勢が有利になる局面があるようだ。

凡人にはこの形勢判断をするのはほぼ不可能な感じもするが、印象深いのは藤井(聡太)二冠の飛車切り。

記憶に新しいところでは、2020王位戦第4局での封じ手(△8七同飛成)。

他には、竜王戦5組決勝(対石田五段)での次の一手でしょうか。

ここで△7七同飛成は、彼以外誰も指せないでしょう。

 

air-h-128k-il

 

大人のための将棋再入門 2 シケプリ風まとめと若干の考察

起源:古代インドのチャトランガがその起源といわれている。チャトランガが西洋に渡りチェスとなり、日本に渡って将棋となった。両者は、独自の発展を遂げていたが、ボードゲーム系の AI というくくりでみると、例えば著名なコンピュータ将棋プログラム YaneuraOu が コンピュータチェスプログラム StockFish のコードから多大な影響を受けているなどの例があり、両者の関連性は無視できない。

ゲーム理論上の分類二人零和有限確定完全情報ゲームに分類される。

理論的性質からのアプローチ:二人零和有限確定完全情報ゲームは、「理論上は完全な先読みが可能であり、双方のプレーヤーが最善手を打てば、必ず先手必勝か後手必勝か引き分けかが決まる」が、将棋の場合、その完全な先読み(完全解析)はいまだなされておらず、仮になされたとしても(特にプレイヤーが人間の場合には)その結果に基づいて指し手を決定する具体的な手段を用意するのは現実的ではない。現実的には、コンピュータ将棋においては、ミニマックス法などの定式化されたアルゴリズムを利用して指し手を決定している。

ミニマックス法などに関しては、こちらに実例を挙げて軽く触れておきました。そこでも触れましたが、実際の差し手決定には、「探索」に負けず劣らず「局面評価」が重要であることを強調しておきました。

人間の対局を振り返ってみると、定跡から外れた局面などは、人間もミニマックスに近い思考方法を取っていることがわかります。つまり、何手か先を読んで、そのときの局面を「駒得しているから良い」とか「駒損はしているが先手を取っているので指せる」などと評価して現実的な指し手を決定しているわけですね。
で、困るのは、人間は、なかなか質の良い評価関数を獲得するのが難しいってことです。

 ヘボ将棋 王より飛車を かわいがり

なんて川柳はあまりに有名ですね。

特に、大人になると意識的にやらないとなかなか脳内評価関数(?)は更新されないので、ソフトを使った検討などでは、このことを意識しながらおこなうと良いでしょう。
まず、上の格言的川柳が批判するような局面が頻発する早石田の対策から考えましょう。
なお、評価関数の評価に関してはこんなことがいえると思います。

評価関数の評価:完全解析がなされていない以上、これとの比較において各種ソフトの評価関数の優劣を決めることはできない。現実的には、異なる評価関数を持つソフト同士の対戦結果から「レーティング」を求め、評価する。

ソフト同士の対局から新しい定跡を抽出しようという動きにはこういった背景があったわけですね。

大人のための将棋再入門 1

他サイトで公開した将棋系の書き物の評判がいいようなので、内容整理してこちらでもアップ。

———————————————————————————————

昨今の将棋ブームにならって将棋を再開する人は多いようだ。
強い新人の存在、AI との絡み…など興味の方向性は様々だろうが、内容のある将棋を指せると愉しい。

ところで、そのような場合、どういう戦法から入った方がいいだろう?

子供の時と違うのだから、入門書に紹介してあるような棒銀や矢倉棒銀ばかりでは面白くないし、第一勝てない(対矢倉の居角左美濃は優秀。特にウォーズ級位者レベルならほぼほぼ勝てる)。
ノーマル四間飛車を勧める人もいるが、相手が最善手を指し続けた場合、振り飛車が不利になることが明らかになりつつある現在、これをいい大人が採用するのはどうかと思う。なにより、ノーマル四間はノーマル四間で細かい定跡を覚える必要があるので面倒くさい。
変化が多く敬遠される傾向にあるが、ここではあえて先手番・後手番ともに居飛車を採用するのをお勧めしたい。
対振り飛車、相居飛車(角換わり・横歩・相がかり)などバリエーションは多いが、そこは大人になってからやる将棋、アバウトに進行を覚えておけばそれなりに指せる。すべてを網羅しなくても、システマティックに対応できるのが大人の知恵というものだろう。また、プロ棋戦鑑賞時にも手の意味がわかるようになって対局がより深く愉しめるようになると思う。あと、現時点で最強ソフト elmo が振り飛車を指さないというのは、棋理の上でもそれなりの裏付けがあるように思う。

私も、再開当初は、先手番の時は居飛車、後手番の時は四間飛車で指していたのだが、後手番の時に、指し方がわからなくなる場合が多く、結局、先手も後手も居飛車で指すようになった。ただし、相手が見え見えな棒銀・中飛車・早石田の場合は、それ用の対策を立てて指す。角換わりや横歩取りの対策はどうしても後回しになってしまうが、そのときはそのとき。負けても気にしなければ、トータルの勝率はそれなりに維持できるはずだ。

 

 

ところで、将棋コミュニティへの IT 系技術の導入は、世間的にも注目を集めている。elmo や技巧が普通に使えるのは有り難い。「強さ」への追及は高水準にあると思うが、意外に穴もある。

twitter 上でも指摘したのだが、
1.WordPress などで使える(マトモに動く)非 Flash 系の棋譜再生ソフトは存在しない
2.1000局超を扱えるフリーの棋譜管理 DB はない
のは痛い。

1.に関しては、実際に着手した。(→Responsive-Kifu としてある程度実現)
2.に関しても検討中。xampp や CakePHP に手を出した一因にもなっている。Java + WildFly + PostgresSQL で行くか、PHP + MySQL で行くべきか。。。うーん。

でも、まあ、こういったアプローチができるってのも「大人の将棋」の良いところ。

 

air-h-128k-il

 

nkif と DB と検索

今日は、JSKifuForWP (その後のResponsive-Kifu)のコードをいじる。

コメント出力も可能になった。

JSKifuForWP は読み込むことのできるデータ形式は、nkif 形式のみである(→その後、kif 形式も読めるように改変)。nkif というのは、私が勝手に名付けた名称で、その出自が某放送局のためこの名前となっている (笑)。

今日の作業でそのデータ構造はほぼ理解した。

nkif は一局面を例えば

p=1b191716101617191b0014000000000012001d1d1d1d1d1d1d1d1d0000000000

00000000000000000000000000000e000000000000000e000e0e0e0e0e0e

0e0003000000000005000c0a08070207080a0c26;

h1=;

h2=;

という形で表す。p は盤面の駒配置、h1 は先手の持ち駒、h2 は後手の持ち駒、である。

p はここでも調べていた。1一が 1b で香、2一が 19 で桂、‥‥というのはわかっていたのだが、これだと 81 * 2 = 162 文字で盤面の駒配置はすべて決定されるはずだが、実際には、164 文字ある。最後の 26 が余計だ。

今までこれがわからなかったのだが、わかってみればなんことはない、これは着手位置を表すマーカー画像の位置そのものだった。初手▲2六歩と飛車先を突いたので、こうなっている次第。余計な情報なので落としてもいいのかもしれない。

そこまでわかったので、テスト的にデータベースも作ってみた。とりあえず三局ほどデータを挿入。

この状態で

SELECT * FROM tbl_kifu where kifu like ‘%p=1b19171610161719‥(略)‥0a0c26;%’

を実行(SQL文はいつまでたっても慣れないっす)。

結果は、


と同一局面(初手▲2六歩)を正しく2件ひろってくる

問題の処理時間は、

と約 30 ms 。

これだと100局程度でも、同一局面をひろってくるのに数秒かかりそう。

んー、ちょっと遅いかな。

感想としては

・それっぽいシステムは組めそう

・が、「こなれた」システムをつくるのはそれなりのノウハウが必要

と思った。

やはり、データベースとか検索とかは苦手だ。

 

air-h-128k-il