カテゴリー「コンピュータ詰将棋」の記事

詰将棋創作プログラミング 26 同一作リストの分析

[2019年3月27日最終更新]

詰将棋創作プログラミング 26 同一作リストの分析

私の詰将棋データベース(以下単に詰将棋DBと呼ぶ)は、全詰連のDB(将棋雑誌など)、詰将棋年報(新聞、一般誌、スマホ詰パラなど)の詰将棋に、最近の詰将棋、Webの詰将棋や単行本の詰将棋の一部を私が追加したもので構成されている。

2016年1月に詰将棋創作プログラミング 14 同一作リストの作成で、詰将棋DBの全詰将棋の中で作者名の異なる同一作を調べて同一作リストを作成したことを報告した。詰将棋DBは当時25万作ぐらいだったが、それから10万作以上増加したので、あらためて現時点での同一作リストを作成してみた。

今回は、作者ごとに見られるようにするため、テキストファイルだけでなくCSV形式でも出力するようにした。Excelで開けば作者名でソーティングしたりできるので、いろいろ調べてみた。ただし、14 同一作リストの作成でも書いたように、データベースの情報が不完全、不正確な部分もあり、数字は参考程度にみていただきたい。初出が詰将棋DBに収録されていない場合など、どちらが同一作かの判断が逆になるケースもあり、正確な情報は原典にあたる必要がある。

1.同一作の割合

(2019年3月時点)

全詰将棋  362357
同一図    69890 19.3%
異作者同一作  4136  1.14%

(2016年1月時点)

全詰将棋  256592
同一図    46827 18.2%
異作者同一作  3083  1.2%

割合が少し変動しているが、同一図の割合が増えているのは、最近多く追加しているWebや単行本の詰将棋は既発表作の掲載が多いためだろう。異作者同一作の割合が少し減ったのは、今回ペンネームが分かって同作者と判明した分を削除した影響と思われる。

2.年度別の遷移

最近は 詰将棋同一検索ページ が無料で利用できるので、異作者同一作はほとんど発表されてないことを期待したが、減少はしているもののまだまだ多い(2017年以降は詰将棋年報が未発行なので、今後増加する可能性大)。

2019年  23作(3月時点)
2018年  45作
2017年  17作
2016年  89作
2015年 100作
2014年  97作

少なく共、将棋雑誌や新しい単行本、プロ棋士の出題などでは、100%詰将棋同一検索ページ でチェックして同一作ゼロを目指してほしいものだ。

2019年分の23作は以下の通り。

##### No.9 及川拓馬 将棋世界P199 2019年4月 詰将棋サロン色紙
同一:No.1805 伊藤果 伊藤果@hi1844 2019.1.18 No.832今週の詰将棋
##### No.29 中田章道 将棋世界P203 2019年4月 実戦に役立つ5手7手詰09
同一:No.227378 木村義雄 詰棋通信76号P197 1984年12月 1973.3 文芸春秋
##### No.60 関口勝男 上本町ハイハイ囲碁将棋クラブ 2019.3.5 新しい詰将棋初段150題(羽生善治監修) 今日の詰将棋3月5日(火)出題
同一:No.294165 松下力観 詰棋通信78号P10 1963年9月 河北新報6回
##### No.437 椎名龍一 将棋サプリ2.0 2019.2.3 将棋1手詰入門ドリル 1手詰195問目
同一:No.64329 野口修 日めくり詰め将棋カレンダー2011 2011.1.24
※同一:塚田正夫・宮本弓彦「将棋の詰め方」1954年7月
##### No.866 浦野真彦 将棋世界P59 2019年2月 7手詰ハンドブック 第1回詰将棋創作キッズチャレンジ
同一:No.59746 飯島栄治 イブニングP018 2011年9月
※7手詰ハンドブックは2011年5月発行なので、浦野作の方が先
##### No.893 浦野真彦 将棋世界付録P35 2019年2月 プロ棋士の詰将棋第18問
同一:No.19669 関根茂 夕刊フジP066 2016年4月
##### No.1209 青野照市 将棋サプリ2.0 2019.1.22 青野照市の基本の詰将棋5手 5手詰183問目小塚英章(詰パラ1957年10月)と同一
同一:No.304803 小塚英章 詰パラP012 1957年10月 20級天国4
##### No.1211 青野照市 将棋サプリ2.0 2019.1.24 青野照市の基本の詰将棋5手 5手詰185問目中本勲(詰パラ1955年1月)と同一
同一:No.216287 芹沢博文 詰棋通信104号P168 1987年1月 1985.5.19 山形新聞
※同一:中本勲 詰パラ1955年1月(左右逆)
##### No.1217 青野照市 将棋サプリ2.0 2019.1.30 青野照市の基本の詰将棋5手 5手詰191問目岡田敏(詰パラ2000年4月)と同一
同一:No.152168 岡田敏 詰パラP4 2000年4月 保育園3
##### No.1305 神吉宏充 大逆転将棋倶楽部Twitter 2019.1.27 中田章道中日スポーツ1992.01.12と同一
同一:No.171563 中田章道 詰棋通信215号P096 1996年5月 1992.01.12 中日スポーツ
##### No.1512 谷口叶多 暁将棋部屋第3号 2019年1月 暁詰将棋
同一:No.171941 清水孝晏 将棋世界P182 1996年4月 5手7手詰1
##### No.1553 山口明 解けてうれしい詰将棋2019年新年号(通巻50号) 2019年1月 中級問題8
同一:No.73552 森信雄 森信雄の日々入門詰将棋 2009.10.26 No.1295-2
##### No.1564 藤井憲郎 解けてうれしい詰将棋2019年新年号(通巻50号) 2019年1月 中級問題19
同一:No.223720 内藤國雄 詰棋通信85号P071 1985年6月 1984.7.24 デイリースポーツ
##### No.1627 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第41問
同一:No.289031 安達康二 近代将棋P105 1966年6月 詰め筋いろいろ
##### No.1629 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第43問
同一:No.101430 関根茂 夕刊フジ 2006.7.25
##### No.1671 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第85問
同一:No.109146 勝浦修 サンケイスポーツ 2005.7.20 第10405回
※同一:福田昭二 将棋評論1951年5月
##### No.1678 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第92問
同一:No.237392 内藤國雄 詰棋通信44号P087 1983年3月 1982.11.7 NHK
##### No.1682 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第96問
同一:No.49810 勝浦修 サンケイスポーツP000 2012年12月 第13041回
##### No.1698 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第112問
同一:No.275191 塚田正夫 詰パラP09 1973年1月 塚田流への郷愁 近代将棋1953年1月
##### No.1705 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第119問
同一:No.132984 岡村孝雄 詰棋めいと第31号P87 2002年11月 詰パラHP2001年10月 マイ・ベスト展番外02
##### No.1728 伊藤果 絶品!4×4マスの詰将棋 2019年1月 第142問
同一:No.222684 中田章道 詰棋通信87号P019 1985年8月 1984.2.16 中日スポーツ
##### No.1821 野村量 詰パラP5 2019年1月 キッズ06
同一:No.37326 摂津正忠 農業共済新聞P005 2014年5月

3.同一作の多い作者

別作者の既発表作と同一作を発表した数が多い作者(イニシャルにした)は以下の通り。ほとんどがプロ棋士である。
左が同一作のあった数、右がその作者の詰将棋DB内のデータ数。

N1プロ  355/958
O プロ  284/9328
N2プロ  212/5289
K1さん  189/516
S1プロ  183/3950
M プロ  155/4841
N3プロ  129/11536
N4プロ  104/8051
I1プロ  97/14287
K2プロ  85/7615

プロ棋士は発表数も多いので、偶然の一致による同一数も多くなるが、偶然では説明できない高い割合で同一作を出題している方もいる。

4.同一作を発表された数の多い作者

逆にあとから別な人に同一作を発表された数が多い作者も調べてみた。

S2プロ  474/2136
O プロ  310/9328
F プロ  112/6838
I1プロ  102/14287
N4プロ  88/8051
N5さん  88/1200
Y プロ  80/245
N3プロ  79/11536
I2プロ  76/1253
S3プロ  72/769

こちらも偶然とは思えない高い割合の方がいる。そこで、誰に同一作を発表されたのか調べてみた。

S2プロの474作のうち313作はN1プロ、141作はN2プロによって出題。
Oプロの310作のうち96作はMプロ、44作はYプロによって出題。

という感じで、両者合意の上か無断盗用かは分からないが、偶然の一致ではなく流用と考えられる。昔は奨励会員などに下請けで作らせるプロ棋士もいたそうなので、そこでどこからかこっそり持ってきたとか、いろいろな事情がありそうだ。

5.同一検索ページの活用を

異作者同一作の1.14%は、偶然の一致にしては高すぎると思ったが、上記のような意図的な流用がかなりの部分を占めているようなので、偶然一致する可能性はずっと低いのだろう。

いずれにしても現在では詰将棋同一検索ページ でかなり調べられるので、作者や担当者は発表前に必ずチェックするようにしよう。

面倒だからとこの手間を省いて発表後に指摘されると、評判がおちるだけでなく、なぜチェックしなかったのかとか、盗用でないことのいいわけとか、あとの手間の方がずっと大変。作者が投稿するときに「同一作がないことは同一検索ページで確認済み」と書けば、採用の可能性も少しは上がるかもしれない。

| | コメント (2)

詰将棋創作プログラミング 25 記録に挑戦!

[2018年12月15日最終更新] 正龍馬図式の長手数記録の更新

詰将棋創作プログラミング 25 記録に挑戦!

詰将棋には、いろいろなジャンルの長手数記録や駒数の記録、繰り返し回数の記録など、多くの記録作が存在する。既存の記録作は下記にまとめているので、興味がある方はどうぞ。

ランダム自動生成を活用して、記録を更新する詰将棋を創作できないか試行して、いくつか長手数記録の更新に成功した。

1.ランダム自動生成の課題

これまで、実戦型簡素図式、飛角図式のランダム自動生成を試行してきた。

いずれも、自動生成した候補図の集合から、入選級(出題レベルにある)かどうか人間がチェックして選定する方式である。

ランダム自動生成は、時間に比例して候補図が増加していくので、完全作らしいというだけのフィルタリングでは、あとでチェックする人間の負荷が大きい。そこで、上記試行の中では捨駒や合駒に点数付けした簡易評価を行い、ある程度以上の候補図だけ出力するようにしている。

現状では、まだ候補図の中に含まれる入選級作品の比率は低く、評価機能の充実が課題である。

2.記録作自動生成のメリット、デメリット

評価機能を充実させたいが、詰将棋の評価基準は人によって大きく異なり、設定が難しい、という話をしたとき、詰工房を主催している金子さんから「それなら記録作を創作すれば」とアドバイスをいただいた。

なるほど、記録作なら、記録項目自体が評価基準になるので、たとえば長手数記録なら手数だけを評価基準にして記録を更新できたか判断できる。

ただし、記録作というのは、各項目の条件を満たす多数の詰将棋の中で頂点を極めた作品なので、それを超える作品をランダム生成で見つけるのは限りなく確率が低そうだ。

そこで、記録作の場合、いきなり初形をランダム生成するのは効率が悪すぎるので、条件を考慮しながら逆算するなど、何らかの構成的な手法を確立することが必要なのではないかと考えていた。

しかし、しばらく飛角図式のランダム生成を試行する中で、少し考えが変わってきた。

入選級の作品がある程度の確率でいくつも生成でき、実際おもちゃ箱や詰将棋パラダイス誌で出題され、解答者からも高く評価された。こういう作品が短時間で見つかるということは、飛角図式の世界は思っていたより奥が深く、人間の400年間の営みでは、まだホンの一部しか開拓できていないことを示している。こういう状況であれば、ランダム生成で記録を更新できる可能性もそんなに低くないのではないか。

3.記録作自動生成の取り組み方針

上記を踏まえて、どのジャンルの記録更新を狙うか、そして、どのように創作していくか考え、三つの方針を立てた。

1) 飛角図式関連の長手数記録を狙う

 *可能性がありそうなのとランダム生成のノウハウがあるため

2) 記録を意識して条件付けして候補図を出力

3) 人間(私)が条件を満たした整形や逆算が可能か調べる

 *いずれは逆算のロジックを実装して、ここも自動化したい

4.飛角図式関連の長手数記録項目

2018年6月現在の飛角図式関連の長手数記録項目とその作品を以下に示す。双玉飛角図式はほとんど開拓されてなく記録更新の可能性も高いが、一般の認知度、アピールを考慮して、まずは単玉飛角図式で検討する。

1)初形の使用駒(盤面+持駒)

2)初形の盤面

  • 飛角図式:盤面大駒全駒 - 83手
  • 純飛角図式:成駒なしの飛角図式 - 45手
  • 龍馬図式:全成駒の飛角図式 - 35手
  • 正飛角図式:持駒なしの飛角図式 -(使用駒飛角図式参照) 33手参考45手
  • 正純飛角図式:持駒なし、成駒なしの飛角図式 -(使用駒飛角図式参照) 33手
  • 正龍馬図式:持駒なし、全成駒の飛角図式 - 25手

3)初形の盤面と詰上り

  • 大駒煙:持駒なしの飛角図式で詰上り3枚 - 33手
  • 盤面大駒煙:飛角図式で詰上り3枚 - 45手
  • 都大駒煙:持駒なしの飛角図式で詰上り55玉で4枚 - 17手
  • 立体飛角詰:初形・詰上り共飛角図式 - 33手
  • 立体純飛角詰:初形・詰上り共純飛角図式 - 17手
  • 立体龍馬詰:初形・詰上り共龍馬図式 - 33手

4)途中図も含め全局面

  • 純大駒図式:全局面使用駒大駒のみ - 25手参考27手
  • 完全立体飛角詰:全局面飛角図式 - 17手参考23手
  • 完全立体純飛角詰:全局面純飛角図式 - 17手
  • 完全立体龍馬詰:全局面龍馬図式 - 17手

5.ランダム生成の条件付け

飛角図式のランダム生成では、既存飛角図式からランダムに5作選び、玉と4枚の飛角の配置を玉との相対位置が同じになるようにコピーして盤面を生成、持駒サーチして完全作候補を生成している。また、捨駒や合駒を評価し、一定レベル以上のものだけ出力している。

持駒サーチはかなり時間がかかるので、できるだけ多数の図を調べるために、持駒なしに絞ってランダム生成することにした。また、長手数記録では手順内容は関係しないので、捨駒や合駒の評価はスキップし、手数の長い完全作候補(20手以上)だけをピックアップすることにした。

持駒なしの飛角図式(正飛角図式と呼ばれる)に絞ったのは、正飛角図式は大駒図式でもあり飛角図式でもあるため、上記の全ての記録項目に関係しており、いずれかの項目を更新できる可能性が高まると考えたためである。

6.創作できた記録作

約1か月の試行で数百万通りの配置を試し、TETSUによる整形、逆算の可能性を検討した結果、以下の記録作を創作することができた。

1)純大駒図式の長手数記録作品 29手

Tst054 作品54 eureka 29手 解答

純大駒図式の長手数記録作品

生成された図は4手目の局面の25手だった。そこからTETSUが逆算して記録更新。

 

2)大駒煙の長手数記録作品 43手(→45手)

本作は、無防備図式、大駒図式、持駒なし、成駒なしの飛角図式かつミニ煙という多重の趣向作で43手という長手数のため、多くの記録を更新した。

大駒煙と共に正純飛角図式の長手数記録も更新。また、大駒図式使用駒飛角図式正飛角図式の長手数記録も更新したが、この三つの記録では45手の参考記録作品がある。

Tst055 作品55 eureka 43手 解答

大駒煙の長手数記録作品(発表時)

  • 記録展示室 No.126 ★出題
     (おもちゃ箱 2018年7月)
    「合駒3枚全て消える 40手台」
  • おもちゃ箱だより第36回 記録に挑戦!
     (詰将棋パラダイス 2018年9月)

生成された図は53飛が59龍だったが、28角以下の難解な余詰があり、TETSUが修正すると共に生飛車にして純飛角図式にした。

 

石川英樹さんが、本作を45手に改良することに成功し、詰パラ2018年11月号でeureka・石川英樹合作として発表、上記の記録もすべて塗り替えられた

Tst057 作品57 eureka・石川英樹合作 45手 解答

大駒煙の長手数記録作品

  • おもちゃ箱だより第37回 飛角図式関連の記録
     (詰将棋パラダイス 2018年11月)

 

3)正龍馬図式の長手数記録作品 33手(→35手)

正龍馬図式のこれまでの長手数記録は25手とそう長くないので、20手以上の正龍馬図式に絞って生成、逆算で更に伸ばせるか検討した結果、33手の記録作を創作することができた。

Tst058 作品58 eureka 33手 解答

正龍馬図式の長手数記録作品

  • 記録展示室 No.127 ★出題
     (おもちゃ箱 2018年11月)
    「秋の大三角? 30手台」
  • おもちゃ箱だより第37回 飛角図式関連の記録
     (詰将棋パラダイス 2018年11月)

 

石川英樹さんが、初形配置の工夫により2手逆算に成功し、正龍馬図式の長手数記録は35手に更新された。(2019年3月追記)

7.関連記録作

上記の取り組みとは別に、通常の飛角図式ランダム生成からの逆算で龍馬図式の長手数記録作(41手)もできたので、紹介する。これまでの記録は小林看空氏の35手(おもちゃ箱2017年7月)。本作は奇しくも後半小林作に合流するので、相談して合作での発表とした。

Tst056 作品56 eureka・小林看空合作 41手 解答

龍馬図式の長手数記録作品

  • おもちゃ箱だより第36回 記録に挑戦!
     (詰将棋パラダイス 2018年9月)

生成された図からTETSUが4手逆算。

 

参考記録として、摩利支天「冬の散歩道」41手を2手逆算して43手の龍馬図式にできる(小林看空案)。

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 24 飛角図式のランダム生成

[2019年4月26日最終更新] 作品59追加

詰将棋創作プログラミング 24 飛角図式のランダム生成

飛角図式とは、盤上に玉と飛角4枚だけが配置されている詰将棋である(飛角の向きや成生は任意、持駒も任意)。飛角図式は見た目がシンプルなので、コンピュータが完全作を全検してしまうのではないかと20世紀の頃から心配されてきたが、実際に試算してみるとコスト的にほぼ無理なことがわかった(詰将棋創作プログラミング 10 陣内竜堂はいつ出現するか)。

「全検できないとしたら、その条件を満たす範囲でランダムに盤面、持駒を生成して完全作かどうかチェックすることが考えられる。」ということで、実戦型詰将棋のランダム生成を試行したことを前に書いた。

eureka作品集(37)の解説で少し書いたように、飛角図式についても、ランダム生成をいろいろ試行していたので、その取り組みについて具体的に書いてみたい。

1.何についてランダムか

玉と飛角4枚を盤面に配置するわけだが、単純に81マスにランダムに配置したのでは、ほとんど詰将棋にならず、効率が悪すぎる。また、持駒も金銀桂香歩の各駒をランダムな枚数持たせたら、ほとんどは詰まないか駒余りになってしまうだろう。

ランダム生成はおもしろい詰将棋をいくつかでも生成することが目的なので、全検のような網羅性は必要なく、可能性の少ないケースはなるべく排除した方が効率的である。

2.既存の飛角図式のまねをする

実戦型のランダム生成では、各マスごと、および持駒を、ランダムに選択した既存の実戦型作品からコピーして配置を決める方法で生成した。飛角図式のランダム生成でも、既存の飛角図式をまねするのが有効ではないかと考え、まずは飛角図式だけのデータベースを作成した。

各マスごとのランダム生成では、飛角4枚がきれいに揃う確率が低いので、確実に飛角図式にするため、玉と飛角4枚の位置を、ランダムに選んだ5作品からコピーすることを考えた。

3.玉と飛角の位置関係をまねする

玉位置と飛角の位置は完全作の可能性に強く関係している。たとえば、玉の近くに詰方の飛角の利きが全くないと、たくさんの持駒が必要になり、完全作が存在する可能性が低くなることは容易に想像できる。

そこで、単純にランダムな5作品からコピーするのではなく、ある程度玉と飛角の相対位置が既存作品と近くなるようなコピー手法をいろいろ試行してみた。例えば次のような方法である。

1) ランダムに選んだ作品から玉と1枚目の飛をコピー。
2) 玉と1枚目の飛の相対位置、向き、成生が同じ作品の中からランダムに選び、2枚目の飛を玉との相対位置を合わせるようにコピー。盤からはみ出たら選択し直し。
3) 玉と2枚目の飛の相対位置、向き、成生が同じ作品の中からランダムに選び、1枚目の角を玉との相対位置を合わせるようにコピー。盤からはみ出たら選択し直し。
4) 玉と1枚目の角の相対位置、向き、成生が同じ作品の中からランダムに選び、2枚目の角を玉との相対位置を合わせるようにコピー。盤からはみ出たら選択し直し。
5) 5枚の配置が既存作品と一致してしまったらやり直し。

あまりまねをしすぎると、既存作品と衝突する可能性が高くなるので、まねの程度が難しい。これはある程度の量を実際に試して評価していけばよいだろう。

4.持駒は絞って全検

盤面を作るコストがそこそこかかるので、毎回持駒をランダムにするのは効率がわるそうだ。そこで、持駒については、持駒サーチの機能を使って完全作を見つけることにした。

持駒が多くなると完全作の可能性は低くなるし、なにより詰将棋としておもしろくない可能性が高いので、「おもしろい詰将棋」を効率的に探す観点から、持駒4種8枚以内の範囲で持駒サーチしてみた。

ここは、持駒なしだけにしたり、3枚以内にしたり、好みによっていろいろ調整できるところだ。

5.手順を分析して候補作を絞る

飛角図式のような緩い条件だと完全作は膨大にあるので、「完全」という条件だけだと、目を通すことが困難なほど大量に生成されてしまう。生成された完全作を評価しておもしろい作品だけを選択するAIを実装すればよい(例えば既存の飛角図式の手順をディープラーニングするなど)のだが、とりあえず、手動で簡単なフィルターをかけることにした。

手順の要因は非常に多いが、まずは簡単に判断できる範囲で、捨駒と合駒に点数を加え、合計が一定点以上のときだけ生成するようにしてみた。

完全に自動創作させる場合には、この「評価」が非常に重要になってくるが、人間とコンピュータが協力する前提なら、効率をあげることができれば良いので、このような大雑把な評価でもそれなりに効果がある。

といっても、現状だと、生成された詰将棋を100題ぐらいみて、私の目で出題してもいいかなと思うのは数題ぐらい。もうちょっとちゃんと評価して効率アップしたいところではある。

6.作品例

飛角図式のランダム生成で創作した発表作品は下記の通り。

Tst037 作品37 eureka 21手 解答

飛角図式

  • 詰将棋デパート1
     (詰将棋パラダイス 2017年1月)

 

Tst044 作品44 eureka 17手 解答

大駒図式

  • 創作プログラミング 作品44 ★出題
     (おもちゃ箱 2017年5月)
    「合駒に注意 10手台」

本作は生成された飛角図式が途中で盤面飛角持駒飛角のダブル飛角図式になるおもしろい図だった。もとの図では難しすぎるので、その途中図を作品として発表した(解説参照)。

 

Tst045 作品45 eureka 25手 解答

飛角図式

  • 創作プログラミング 作品45 ★出題
     (おもちゃ箱 2017年5月)
    「雪隠詰 20手台」

 

Tst047 作品47 eureka 17手 解答

飛角図式

 

Tst048 作品48 eureka 25手 解答

飛角図式

  • たま研作品展3 ★出題
     (詰パラ 2017年11月)

 

Tst049 作品49 eureka 19手 解答

飛角図式

 

Tst050 作品50 eureka 19手 解答

飛角図式・四銀詰

 

Tst051 作品51 eureka 23手 解答

飛角図式

 

Tst052 作品52 eureka 27手 解答

飛角図式・ミニ煙

 

Tst053 作品53 eureka 29手 解答

飛角図式

 

Tst059 作品59 eureka 25手 解答

飛角図式

 

7.ランダム生成の展開

実戦型詰将棋、飛角図式で二通りののランダム生成を試行したが、これらの方法は既存作品のデータベースを元にして生成する手法なので、他のいろいろな詰将棋にも比較的容易に展開が可能である。例えば、飛角図式の代わりに盤面5枚以内、持駒5枚以内の簡素図式のデータベースを入力にすれば、簡素図式のランダム生成ができる。

ここでは初形配置をまねしているだけだが、そのデータベースから手順や詰上り配置なども分析して似た傾向のものを生成するようにすれば、汎用のまね創作ツールが構築できるかも。

例えば、入門用5手詰データベースを与えれば同じようなレベルの5手詰を生成したり、ある作家の全作品を与えれば、似た作風の作品が生成できるとかなれば、いろいろな詰将棋を創作できる可能性が大きく広がるだろう。

もっとも、将棋AIが、人間が教えていた段階から、プロ棋士の棋譜を学習する段階、更にルールだけ与えて自己対戦だけで最強になったりしているのを見ると、詰将棋創作も人間のコントロールを離れて、既存の詰将棋を一切教師データとして使わずにAIが人間を感心させるような作品を作る日もいつか来るのかもしれないけれども。

 

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 23 柿木将棋自動化の効果

[2017年1月22日最終更新]

詰将棋創作プログラミング 23 柿木将棋自動化の効果

柿木将棋を詰将棋の創作に活用している人は多い。創作中には何度も柿木将棋で解答や検討をすることになるが、柿木将棋で詰将棋を入力したり解いたり余詰を調べる操作を自動化すると、どんな効果があり、どのぐらいの時間短縮になるのだろうか。

関連情報: 柿木将棋IX  詰将棋創作プログラミング  2 柿木将棋の活用

1.柿木将棋IXの自動化機能

あらかじめ詰将棋の棋譜ファイルを作っておくことが前提になるが、柿木将棋の起動・終了や棋譜ファイル読み込み、解答、余詰検討の操作は下記の機能で自動化できる。なお、柿木将棋IXは最新にアップデートしておくこと。

1)起動オプションを利用した自動化

柿木将棋はアイコンから起動するのが普通だが、Windowsのプログラムなので、コマンドラインから起動したり、バッチファイルから起動することも、そして他のプログラムの中から起動することもできる。そのとき起動オプションで /M と指定されていれば何も操作しなくても指定した棋譜ファイル(詰将棋)の解答をしてくれるし、更に /Z と指定されていれば余詰検討までしてくれる。

解答+検討のバッチファイルを作ってアイコンを置いておけば、棋譜ファイルをそこにドラッグするだけで、あとは操作不要。起動、棋譜ファイル読み込み、解答、余詰検討、ファイル保存、終了まで全自動でやってくれる。詳しくは詰将棋創作プログラミング 2 柿木将棋の活用を参照されたい。

2)詰将棋の連続実行

対局メニューにある詰将棋の連続実行では、指定されたフォルダにあるすべての棋譜ファイルに対して、全自動で解答や余詰検討をすることができる。たくさんの図を柿木将棋に検討させることを「自動創作」という人もいるようだが、それは特にプログラムを組まなくても柿木将棋だけでできるわけだ。

なお、柿木将棋IXには、詰将棋の連続実行以外にも、ツールメニューの棋譜解析の連続実行、棋譜情報の一括設定といった、複数のファイルを対象にした機能が用意されている。

以下の二つは自動化とはちょっと違うが、時間短縮に効果がある機能ということであげておく。

3)柿木将棋の多重起動

難しい詰将棋の場合、柿木将棋の解答、検討に時間がかかることが多い。終わるのを待つ間何もできないかというと、もう一つ柿木将棋を立ち上げれば別の図を解答、検討したりできる。どのぐらい多重に動かせるかはCPUのコア数やメモリ量などによる。

多重に実行したとき注意が必要なのが、柿木将棋の環境ファイルKSHOGI9.ENVや/M・/Zで解答や検討したときの結果ファイルKShogiResult.txtだ。タイミングによって競合すると誤動作する可能性がある。この二つは /E /F の起動オプションでファイルを切り替えることができるので、動かしたい多重度分のファイルを用意しておけば、安全に実行できる。詳しくは柿木将棋IXのヘルプで、高度な使い方-起動オプション を参照されたい。

また、必要なメモリも多重度分搭載されてないといけないので、パソコンの搭載メモリと詰将棋用のメモリ設定をあらかじめ確認しておこう。

多重度にもよるが、個々の柿木将棋の実行時間が単独で実行させたときより長くなることもあるので、解答時間や余詰検討の制限時間の設定にも注意が必要。

4)余詰発見時の打切り

「余詰を調べる」でポップアップされる設定画面に、「余詰検出で中断する」というチェックボックスがある。ここにチェックを入れておけば、余詰検討中、一つでも余詰が見つかったらそこで余詰検討を終了してくれるので、時間を短縮できる。当然、すべての余詰を見つけたい場合はチェックしてはならない。

なお、適当に並べた図は収束辺りがボロボロのことが多いので、調べる順序を「詰み上がり局面から調べる。」にしておくと時間短縮できる可能性が高い。

2.自動化機能による効果

上記の自動化機能により省略できるのは、柿木将棋の起動・終了やいくつかの操作で、1回だけなら数秒レベルの時間短縮で、効果は小さい。しかし、一般に創作途中では多くの図を柿木将棋で検討することになるので、毎回ファイルドラッグだけで操作不要になれば、かなり使い勝手は向上する。

多数(例えば100題)の詰将棋の棋譜ファイルがすでにあって、それをすべて解答、検討したいときは、自動化機能が威力を発揮する。手操作の場合、操作の時間はたいしたことはなくても、100回も操作するのはかなり面倒だし、なにより、柿木将棋が解答、検討しているのを終わるまで待たないと次の詰将棋の操作ができないので、100題終わるまで付きっきりでいなければならない。詰将棋の連続実行を使えば、寝る前に開始しておけば、何もしなくても柿木将棋ががんばってくれるので、起きてから結果を確認するだけでよい。

100題を50題、50題と二つのフォルダに分けて、2多重で柿木将棋を走らせれば、時間も半分ぐらいで終わることになる。

3.創作プログラミングによる自動化の効果

1)創作プログラミングでの自動化の範囲

詰将棋創作プログラミングは、柿木将棋の自動化機能を活用し、更に拡張したものだ。創作プログラミングによる自動化と柿木将棋の詰将棋の連続実行の違いは、解答、検討の操作だけでなく、詰将棋の入力の操作も自動化していることにある。

2)自動化による時間短縮効果

入力の時間は駒数にもよるが、数十秒~数分かかるので、これがほぼゼロになる効果はかなり大きい。

試しに1題(香歩問題29手詰)を入力して、解答、余詰検討して、時間をはかってみた。

起動、盤面編集、解答、余詰検討、終了の操作はいずれも数秒
図面の入力で40秒ぐらい
柿木将棋の実行時間は解答1秒、検討30秒(進行度300、100秒で打切り)

全体で90秒ぐらいのうち、人間の操作が約60秒、柿木将棋の実行時間が約30秒だったので、人間の操作がなくなれば約3倍の高速化になる。

もちろん、この時間は問題によって変わるし、検討にどれだけ時間をかけるかでも大きく変わる。

また不詰の図の場合には結論がでないことが多いので、適当な時間で打ち切ることになるだろう。これは、柿木将棋の起動オプションで /M100 (解答、100秒で打切り)のように指定できる。

3)操作不要になることの効果

連続実行であげたような、多数の図をチェックする場合には、操作不要になること自体が大きな効果になる。人間には仕事もあるし、睡眠も必要なので、長時間になると付きっきりで実行することはできず、全部終了するまでの時間は非常に長くなることが多い。

例えば、2000年に私が11玉裸玉の検証を行ったとき、1000題近い図を検討したのだが、終わるまでに約3か月かかった。幸い新たな完全作が1作見つかったのでほっとしたが、1作も見つからなかったら徒労の3か月になるところであった。

創作プログラミングを始めてから、持駒サーチプログラムの確認の意味も含めて、詰将棋創作プログラミング 3 裸玉全検の可能性で、11玉裸玉について再度検証してみた。このときの実行時間は約16時間だった。もちろん、これがすべて自動化の効果というわけではなく、2000年から2014年でソフトも進歩しパソコンの速度も向上しているなどの要因もある。

なによりも、こういう条件作の検討は、そもそも存在しない可能性もかなりあるので、それに人生の3か月を賭けるのはかなり勇気がいる。2000年のときは、新しい将棋ソフトの解図能力のテストも兼ねて始めたら、やめられなくなってしまったというのが実情であった。しかし、1日パソコンを実行させておくぐらいなら、仮に見つからなくてもそんなに痛くない。

直接の時間短縮の効果よりも、むしろこれが大きな効果で、詰将棋創作プログラミングで新しい試みをいろいろやれているのも、プログラムが完成してしまえば、あとは操作不要で待っていればよいからである。もちろん、出力された図が完全であっても発表レベルの作品はほとんどないので、あとは、人間ががんばっていい作品か判断して自分で納得のいく作品を見つけなければならないわけだが、完全らしい図のみを対象にすれば、この時間もかなり短縮できて、数時間から数日程度ですむことが多い。

4.柿木将棋自動化のすすめ

操作が不要になること、時間短縮できることは、ほとんどの人にとってメリットと思われるので、柿木将棋の自動化機能をこれまで使ってなかった方は、ぜひ一度試してはいかがだろうか。

プログラミングができ、更に自動化するため自分で創作プログラミングしてみたい方は、詰将棋創作プログラミングの連載が参考になると思う。Rubyで書こうとしている方は、詰将棋創作プログラミング 21 サンプルソースコードも参考に。

| | コメント (3) | トラックバック (0)

詰将棋創作プログラミング 22 詰将棋創作AIを作るには

[2017年1月17日最終更新]

詰将棋創作プログラミング 22 詰将棋創作AIを作るには

自分で詰将棋を創作(自動創作)する詰将棋創作AIを作るには何が必要だろうか。

1.詰将棋創作AIとは

詰将棋創作プログラミング 20 自動創作とはで書いたように、自動創作した、すなわちプログラムが自分で詰将棋で創作したといえるには、

  1. 企画、構想(どんな詰将棋を作るか考える)
  2. 図化(それが成立しそうな配置を考える)
  3. 検討(狙いが成立しているか確認)
  4. 選定、推敲(最終的な作品を決定)

の全フェーズを実行できる必要がある。

現在は人間にしかできないと考えられるので、これが実現できたら詰将棋創作AIと呼んでもよいだろう。個性を持った詰将棋創作AIが育ってきたら、人間と識別するのも難しい。

これまで、いろいろなアプローチでコンピュータによる詰将棋創作の研究が行われてきたが、「自動生成」とか「自動創作」とか呼んでいても、ほとんどは人間の指示に従い図化、検討だけをプログラムで行うもので、自動創作というよりは人間による詰将棋創作の支援ツールであった。

最近は、東大の入試に挑戦とか新聞記事や小説の自動生成とか登場して話題になっているが、これも人間がおぜん立てしているレベルでは、AIというより人間の支援ツールだろう。

詰将棋創作プログラミングはもともと人間による詰将棋創作の支援ツールを目指しているので、詰将棋創作AIの話はちょっとはずれてしまうが、夢の実現という意味で、そのためには何が必要なのか、思いつくままにあげてみよう。

2.詰将棋創作AIのために必要なこと

1)企画、構想(どんな詰将棋を作るか考える)

人間が創作するときのことを考えれば、手掛かりになるだろう。

まず、当たり前だが、詰将棋を知らない人間には詰将棋を作ることはできない。つまり、

  • 詰将棋とはどういうものか

を知っていることが前提になる。ここは比較的プログラム化容易なところだろう。次に、

  • その人の詰将棋の経験

が重要。これは、その人がこれまで解いたり鑑賞したりした詰将棋、そして目にした解説者や解答者、賞の選考委員などほかの人の評価などである。ある程度自分で創作するようになってからは、どういう詰将棋を創作していて、それがどう評価されたかも重要な情報だ。さらに

  • 詰将棋の狙いについての知識

もないと、その評価の理解が困難だろう。手筋、構想、趣向、条件、曲詰など、人が何を狙って詰将棋を作り、何をどう評価するか、更にこれまでの作品でどこまで実現されてきたかといった歴史の知識もある程度いるだろう。

人は一人一人感性も異なり、したがって、好みの詰将棋も違ってくる。だから知識、経験も偏っているのが普通で、創作する詰将棋も人によって違ってくる。

詰将棋創作AIもしかりで、どのように育てるかで、それぞれ個性的なAIになっていくだろう。

経験を与える部分は、既存の詰将棋データベースが利用できると思われるかもしれないが、現在のデータベースには解説も評価も狙いも入力されてないので、学習用の詰将棋データベースを構築するところから始める必要がありそうだ。自然言語を理解するAIをベースにできるなら、例えば詰パラ、将棋世界、近代将棋などのPDFを入力にしてデータベースを自動生成することも考えられる。また、スマホ詰パラはもともとアプリで、データは評価を含めサーバにあるので、開発者と協力すれば自動で取り込めるのではないか。

解説や評価を含め全詰将棋を収録した学習用データベースができれば、その中から特定の傾向の詰将棋(同じ作者とか超短編だけとか飛角図式だけとか)を抽出して経験を詰ませれば、形、手順を含めそれらと違和感がない詰将棋を創作できるようになればおもしろい。ただ、人間は作風の中でも常に新しい要素を入れることを考えて創作しているので、創作AIも、似たような作品を作るだけでなく、新しい試みをできるようにしなければいけないだろう。

2)図化(それが成立しそうな配置を考える)

これまで一番研究されてきた図化のフェーズだが、正算、逆算、全検、ランダムといった手法だけでなく、少し高度な作品だと、手順法(中核の手順を先に作って、それを成立させる配置を作る)も必須。昔提案したことがあるが、難しいためか、この研究もほとんどされていない。構想作系は特に作意手順だけでなく変化紛れも重要で、これと作意手順の差異が狙いになっていることが多い。

3)検討(狙いが成立しているか確認)

完全性の検討の技術は、柿木将棋など現在でもかなりの水準にある。ただ、余詰のときにそれを修正する技術は新たに開発する必要があるだろう。

企画・構想段階でどんな詰将棋を作ろうとしたのか明確になっていれば、それが成立しているか判断するのは難しくないと思われる。

4)選定、推敲(最終的な作品を決定)

推敲もこれまでほとんど研究されたことがない項目だ。不要駒除去ぐらいなら簡単だろうが、いろいろ可能な配置を生成し最善の配置を見出すのは案外大変かも。

選定、推敲の段階で重要なのは

  • 生成した詰将棋の評価

である。これは前述の学習用データベースを元に評価することになる。

人間らしいAIを作るのなら、自分が経験した範囲内の詰将棋の評価をもとに生成した詰将棋の評価をするのがいいのだろうが、数が少ないと分析が難しい。賢いAIを作りたいなら全詰将棋の評価をもとにした方がよさそうだ。

個々の詰将棋を分析して、評価される要素をパラメタ化し、それがどのように評価されたのかをふまえて、全詰将棋から各パラメタの重みづけと評価の相関を学習する。それができれば、新たに創作した詰将棋がどう評価されるか、逆にどのような評価を期待するなら、どのように詰将棋を作ればよいか判断することもできるだろう。

ただし、詰将棋の評価は絶対的な評価が存在するわけではなく、人によって変わるだけでなくメディアによっても時代によっても変わるし、1号局と2号局でも全然違ってくる。類似作は評価減だ。その辺りを的確に判断して評価することは、かなり難しいかもしれない。

これまで、非常に狭い範囲の詰将棋を対象に人間の感性評価の研究が行われたことがあるが、それは評価する人間の集合が比較的同質だから研究しやすい面があったと思う。だいたい、発表するメディア、コーナーによって、そこに集う人の集合が形作られるので、最初からそれを意識して創作、評価するのがいいのだろうか。

3.詰将棋創作AIは夢かグランドチャレンジか

こうして少し考えただけでも、詰将棋創作AIの研究はまだほとんど手つかずで、道は遠そうだ。研究者、資金、リソースがそろえば案外進む可能性もありそうだが、詰将棋のワールドワイドな知名度はほぼゼロなので、成功しても元が取れないしね。

前にコンピュータ詰将棋の課題で、「課題D: プログラムだけで煙詰を作る」をグランドチャレンジだと書いたが、詰将棋創作AIはそれよりずっと広い取り組みが必要でさらに厳しいチャレンジだ。スマホ詰パラに限定して進め、3手詰ぐらいで感触をつかむのがいいのかも。

創作技術的には、人間が指示する創作支援ツールレベルでできないことは当然自動的にもできないので、まずは、詰将棋創作プログラミングの方向で頑張るのが、一つの基礎研究になるのかもしれない。

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 21 サンプルソースコード

[2017年1月13日最終更新]

詰将棋創作プログラミング 21 サンプルソースコード

詰将棋創作プログラミング 1 最初は年賀詰で開発した、持駒サーチのプログラムのソースコード(Ruby)を、自分でも創作プログラミングをしてみたい方のために、サンプルとして公開する。

1.サンプルソースコードの公開について

詰将棋創作プログラミングで作成しているプログラムは、私自身だけで利用する前提で書いているため、ユーザインターフェースは最小限にしか用意していない。例えばフォルダーやファイル名は固定、パラメタは柿木将棋で事前設定およびプログラムを直接書き替えて設定する。そういう事情と、使い捨てのプログラムで次々いろいろな機能を試していることもあって、これまで要望はあったが、プログラムの公開はしていなかった。

作成しているプログラムはいずれも数十~数百行の小さなもので、テキストファイルの処理と柿木将棋の呼び出しぐらいしかしていないので、少しプログラミングできる方なら、この連載を読めば自分でも書けると思う。しかし、最初はどんな風に書いていいかとまどうかもしれないので、自分用のプログラムでも少しは参考になるかと思い、サンプルとして一つソースコードを公開することにした。

プログラミング言語はRubyを使用しているが、私も初めて使用した言語で、早く動かすこと優先で本やWebの情報を見ながら書いたので、Rubyらしくないコーディングになっていてお手本としては適切ではない。あくまで参考程度にとどめて、みなさんはもっとよいプログラムを書いてほしい。また、質問されても答えられない可能性が高いので、自力で読める方だけ参照されるようお願いする。

盤面や駒の表し方は、池さんの「コンピュータ将棋のアルゴリズム」を参考にしている。
http://usapyon.game.coocan.jp/ComShogi/index.html
「将棋のルール」の章を読めばソースコードも説明されていて参考になると思うので、将棋のプログラムを初めて作る方は参照されることをお勧めする。

2.持駒サーチのソースコード

Windows用。Ruby 2.3の64ビット版使用。
頭に、使い方、パラメタがある。


#! ruby -Ks

=begin
持駒サーチ 1.01 2014年4月8日

盤面図を入力に、詰将棋として成立する持駒の組み合わせを探す。
まずはTETSUの環境に特化して記述。汎用化は考えない。
必要なファイルはc:/tstに置く(詰将棋創作支援ツール)。
コマンドプロンプトより起動、文字コードはSJISにしておく。
起動前にtstに移動しておく(cd c:/tst)。
入力盤面図はms_in.kifにあらかじめ作っておく。
余詰設定は柿木将棋IXで事前にしておく(1手100秒、進行度300、検出時打切り)。
思考・対局設定の詰将棋の設定で、棋譜に解答時間を設定するをオンにしておく。
実行結果ファイルは上書きするので、必要なら他にコピーすること。
 ms_result.txt     全実行結果
 ms_kanzen.txt     完全作リスト
 ms_tsumi.txt      最小持駒リスト
持駒の最大枚数、駒種の最大枚数をMOCHIMAX、KOMASYUMAXで指定できる。
解図時間の上限をKAIZULIMITで秒単位で指定できる。
KSHOGIRESULTのユーザ名は実行環境ごとに書き替えること。
=end

# パラメタ

MOCHIMAX = 15                      # 持駒の最大枚数 1-38
KOMASYUMAX = 7                     # 持駒の最大種類数 1-7
KAIZULIMIT = 30                    # 解図時間制限 秒単位

KSHOGIEXEM = "c:/PROGRA~2/Kakinoki/KShogi9/KShogi9.exe ms_kshogi.kif /M" +  KAIZULIMIT.to_s    # 解図
KSHOGIEXEZ = "c:/PROGRA~2/Kakinoki/KShogi9/KShogi9.exe ms_kshogi.kif /Z"        # 余詰を探す
KSHOGIRESULT = "c:/Users/ユーザ名/Documents/柿木将棋/KShogiResult.txt"          # 柿木将棋実行結果
##### ユーザ名は実行するPC毎に、そのPCでのユーザ名に書き替えること

INKIF = "c:/tst/ms_in.kif"                 # 持駒サーチの入力棋譜
KSHOGIKIF = "c:/tst/ms_kshogi.kif"         # 柿木将棋に渡す棋譜
RESULT = "c:/tst/ms_result.txt"            # 持駒サーチの結果
KANZEN = "c:/tst/ms_kanzen.txt"            # 見つかった完全作
TSUMI = "c:/tst/ms_tsumi.txt"              # 見つかった詰んだ組み合わせ(最小持駒)

・・・・・・


全ソースコード(約300行)はこちら。

詰将棋創作プログラミング 3 裸玉全検の可能性のときに高速化のため事前チェックなど手を加えて少し大きくなっているが、元々は200行ぐらいだった。

3.持駒サーチの実行について

このソースコードは、詰将棋創作プログラミングをしてみたい方のためにサンプルとして公開するものであり、そのままで実行することは想定していない。

私の環境では動いているプログラムなので、Rubyと柿木将棋IX(最新のアップデート)をインストールして環境を整えれば実行は可能かもしれないが、保証できないので、動かしたい方は自己責任でお願いする。

4.持駒サーチ実行例

1) 事前準備

1a. 未インストールなら、Ruby、柿木将棋IXをインストール

c:/tstフォルダを作り、Rubyのパスを張っておく。

1b. 柿木将棋IXで、余詰設定、詰将棋設定

(軽く設定しておいて、完全作候補だけあとから時間をかけて調べるのが効率的)

☑ 時間制限をする 10秒
☑ 進行度制限をする 100
☑ 各局面で複数の余詰を検出する
☑ 余詰検出で中断する

・ 長手数用
・ 詰上り局面から調べる

☑ 棋譜に解答時間を記録する

1c. 上記のms.rbをc:/tstにダウンロード、パラメタ、ユーザ名を書き替え

MOCHIMAX = 8                       # 持駒の最大枚数 1-38
KOMASYUMAX = 4                     # 持駒の最大種類数 1-7
KAIZULIMIT = 5                     # 解図時間制限 秒単位

KSHOGIRESULT = "c:/Users/xxx/Documents/柿木将棋/KShogiResult.txt"          # 柿木将棋実行結果

xxxは実行するPCでのユーザ名を設定

2) 盤面図を作って持駒サーチを実行

2a. 柿木将棋IXで、c:/tst/ms_in.kif を作成

  9 8 7 6 5 4 3 2 1
+---------------------------+
| ・ ・ ・ ・ ・ ・ ・v桂v香|一
| ・ ・ ・ ・ ・ ・ ・v玉 ・|二
| ・ ・ ・ ・ ・ ・ ・ ・ ・|三
| ・ ・ ・ ・ ・ ・ 銀 ・v歩|四
| ・ ・ ・ ・ ・ ・ ・ ・ ・|五
| ・ ・ ・ ・ ・ ・ ・ ・ ・|六
| ・ ・ ・ ・ ・ ・ ・ ・ ・|七
| ・ ・ ・ ・ ・ ・ ・ ・ ・|八
| ・ ・ ・ ・ ・ ・ ・ ・ ・|九
+---------------------------+
持駒:なし

2b. 持駒サーチ実行

コマンドプロンプトを起動(文字コードはSJISに)
cd
c:/tst
ruby ms.rb

2c. 実行結果は下記ファイルに格納される

c:/tst/ms_result.txt 全実行結果

c:/tst/ms_kanzen.txt 完全作候補リスト: 手順は保存されないので後で柿木将棋で調べる。ちゃんと時間をかけて検討することも必要。

・・・
持駒枚数最大:8 持駒駒種最大:4 解図時間最大5秒

飛 銀 歩四 : 27手で詰みました(▲2三飛、0:01)。
   余詰:0、非限定:1、手順前後:0、迂回:0 検出しました。
角 金 桂 香 : 15手で詰みました(▲4四角、0:02)。
   余詰:0、非限定:6、手順前後:0、迂回:0 検出しました。
金二 : 3手で詰みました(▲2三金、0:01)。
   余詰、非限定等は見つかりませんでした。
金 銀 : 5手で詰みました(▲2三銀打、0:00)。
   余詰、非限定等は見つかりませんでした。
・・・

c:\tst\ms_tsumi.txt 最小持駒リスト: 裸玉の検討のときなど有効

なお、上記ファイルをブラウザで表示して文字化けする場合は、テキストエンコーディングをShift_JISに設定すること。

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 20 自動創作とは

[2017年1月14日最終更新] 反響のリンク追加

詰将棋創作プログラミング 20 自動創作とは

詰将棋パラダイス誌の2017年1月号のデパートで、eureka作品が5作発表されている。eurekaは、私とコンピュータが協力して創作した詰将棋で使用しているペンネームである。これまでに創作した作品はeureka作品集で見ることができる。これに関連して、ちえのわ雑文集で、自動創作を禁止すべし、という提言が掲載されている。内容は詰パラを読んでほしいが、ここでは「自動創作とは何か」について触れておきたい。

  • 「・・・ 今月号のデパート出題稿を見てみてほしい。これらは全て自動創作によって得られた作品とのことだ。そしてさらに驚くべきことに、その全てが好作。人の作る条件作の水準を大きく上回っていると私には感じられた。
     それもそのはず、何せコンピュータは1日に数万というオーダーで条件に合った完全作を得ることができるらしい。1日に1作を仕上げるのがやっとの我々が敵わないのも当然だ。条件作という領域から人が立ち退きを迫られる日はそう遠くないかもしれない。
     しかし考えてみると、なぜ我々がコンピュータにこの楽園を明け渡してやらねばならないのだろうか。・・・」 (詰パラ2017年1月号、ちえのわ雑文集)

詰将棋創作プログラミングの連載では、どういう考え方でどんな取り組みをしてどういう作品を作ってきたか、できるだけ詳しく公開しているのだが、この筆者は読んでいないのかもしれない。「とのことだ」、「らしい」と自分の直観と聞いたことだけで判断して「我々は自らの手でその果実を禁じられたものとしなければならない」とまでいわれると、最近将棋でも同じようなことがあっただけに、ちょっと恐怖を感じる。思いこんでいる人には、それに沿う説明以外はすべて納得できないといわれるのだろうなあ。

  • 「人間の脳とコンピュータは、処理方式が全く異なり、それぞれ違う得意分野がある。詰将棋の解答で人間を凌駕しているソフトウェアが、詰将棋の創作では人間に遠く及ばない。ならば、人間とコンピュータが協調して、おもしろい詰将棋を創作することを考えればよいのではないか。詰将棋作家の将棋ソフトの利用は、現在は検討(余詰チェックなど)が中心だが、それだけでも非常に大きな効果があり、解答・検討能力に優れた柿木将棋が詰将棋作家の必須ソフトになっている。創作活動全般にソフトウェアが活用できるようになったら、もっと多くの人が詰将棋を創作できるようになったり、新次元のすばらしい詰将棋が生まれてくる可能性もあるのではないか。」
     (TETSU、詰将棋創作プログラミング
  • 「1.妄想力と実現力
     詰将棋の創作には、おおざっぱにいうと二つの力が必要です。
     一つはどんな詰将棋にするか狙いやイメージを決める妄想力。仕事でいえば、企画、構想といった段階です。
     もう一つは、その妄想を実際に詰将棋に図化する実現力。ここは棋力が重要なので、棋力の低い私には大変です。
     妄想力はコンピュータには苦手で、ここは人間ががんばるところ。でも、実現力の方はコンピュータを活用すれば、かなり効率化できそうです。」
     (加藤徹、詰将棋パラダイス2014年7月号 おもちゃ箱だより)
  • 「一般に、能力のある一部の人しかできなかったことが、機械の支援によってできるようになると、自分たちの領域を侵食されることに対する反発と、これまであこがれていたことができるようになる喜びの両方の反応がでてくる。だんだん意識が変わってくると、機械にできることは機械にまかせて、人間はそれも活用してよりクリエイティブな領域に挑戦するようになっていく。
    ソフトの進化は止まらないので、それをいかに活用して楽しめるか考えたいものだ。」
     (TETSU、詰将棋創作での将棋ソフトの活用

詰将棋の創作は、大雑把にいうと次のようなフェーズになる。

1) 企画、構想(どんな詰将棋を作るか考える)

 どんな配置にするか、どんな手筋、趣向、構想、条件を織り込むか、作品の狙いを明確化

2) 図化(それが成立しそうな配置を考える)

 正算、逆算、全検など手法はいろいろ

3) 検討(狙いが成立しているか確認)

 手順が狙い通りか、余詰などがないか

4) 選定、推敲(最終的な作品を決定)

 いろいろある案からよいと考える図を決める

将棋ソフトなど存在しない時代は、もちろん、原則すべて人間(基本は作者だが、協力者、検討者、選者も)がやっていた。将棋ソフト(柿木将棋など)が登場し、進歩してくると、3)検討はソフト中心に行うのが普通になり、また2)図化でもソフトが大きな役割を果たすようになっている。しかし、図化、検討に柿木将棋が活用されたとしても、それで作られた作品を柿木将棋作とはいわない。柿木将棋は作者によって活用されているツールにすぎず、企画、構想も最終的な選定も作者が実施しており、そこにオリジナリティがあるからである。

コンピュータ(ソフト、AI)による自動創作といえるためには、1)から4)まで自動でできることが必要と考えるが、現在のところ、それは夢である。

詰将棋創作プログラミングで実現しているのは、上記で述べた現在の柿木将棋を活用した創作法の効率化である。一般に創作途中ではたくさんの図を検討する必要があり、その都度柿木将棋に入力して解答、検討を実行する必要がある。その部分の人間の操作をプログラムを組むことで自動化しているわけである。効率化されているとはいえ、創作法という意味では私が以前から創作していたのと同じである。

上記のことからeureka作品は他の私名義の作品と同様、私の作品と考えている。私もほかの人に説明するときに「コンピュータ作」ということがあるが、「自動創作」ということばが、私の作品であることを否定する意味で使われているのなら、とても悲しいことだ。

なお、柿木将棋IXは標準でプログラムから呼び出すことができ、プログラムが組める人なら誰でも同様のことができる(柿木将棋の活用参照)。たぶんほかにも実行している人がいるだろう。効率化、時間短縮は誰にとってもメリットなので、近いうちに創作法の一つのスタンダードになるかもしれない。

ちえのわ雑文集の提言について、ネット上でいくつか反響があったので、最後にあげておきたい。


関連情報: コンピュータ将棋2019  2018  詰将棋創作プログラミング
  詰将棋創作での将棋ソフトの活用  コンピュータがもたらした平等の時代
  ソフト利用詰将棋創作の問題点  コンピュータ詰将棋の課題
  コンピュータによる詰将棋創作  コンピュータで詰将棋  柿木将棋IX

| | コメント (2) | トラックバック (0)

コンピュータがもたらした平等の時代

[2016年7月29日最終更新] 機械創作コンテンツの時代 を追記

詰将棋パラダイス誌1997年4月号-1999年4月号に連載された「毎日がパラダイス」は、詰将棋作家でもあり小説家としても著名な故吉村達也さんが、自身の話から詰棋界のもろもろの課題(コンピュータ詰将棋、詰将棋は数学か小説か、入選とは、規約論争・・・)まで切り込むおもしろいエッセイだった。

詰将棋創作での将棋ソフトの活用では、コンピュータ詰将棋がもたらす暗黒の未来予想(吉村達也 毎日がパラダイス 第5回 運命の神が動き始めた (PDF))を紹介したが、吉村さんは当時のコンピュータ詰将棋の状況を良く見ていて、コンピュータ詰将棋のプラスの面についてもいろいろ書かれている。その一つとして第18回の記事を紹介しよう。

「機械の能力が人間のそれを圧倒的に上回ってくれたおかげで、実力者の前では初心者は小さくなっていなければならないというお稽古ごとの世界にありがちな上下関係は消滅し、本当の意味での平等さが詰棋界にやってきたのです。」

プログラムが囲碁のトップ棋士を大差で破ったことで、職を奪われるのではないかなど、いろいろな分野で不安が語られているが、1998年にすでにコンピュータによる変化のマイナス面、プラス面をしっかり見据えていた吉村さんの慧眼には感心する。一読をお勧めしたい。

20世紀にすでにコンピュータが人間を超えた詰将棋では、暗黒の未来も予想されていたわけだが、実際にはよい循環になり、ITは詰将棋界の発展に大きく寄与している。

人間がソフト・アプリを道具として使いこなすことで、

  • 本当の意味での平等さが詰棋界にやってきただけでなく
    (上記のPDF参照)
  • 時間短縮効果で、忙しくて詰将棋から離れていた人が戻ってきたり
    (私もその一人)
  • 鑑賞を中心とした愉しみ方が可能になったり
    (自分で解かなくてもソフトで解図させ鑑賞できる)
  • 新しい詰将棋ファンも大幅に増加したり
    (スマホ詰パラの貢献が大きい)
  • それまでになかったような作品が登場してきたり
    (柿木将棋活用の創作はいまでは常識)

と、良いことがたくさん。

さらにソフト・アプリの機能も日々進化しており、鑑賞支援、創作支援など今後もより便利になっていくことが期待される。

詰将棋創作での将棋ソフトの活用でも書いたが、「ソフトの進化は止まらないので、それをいかに活用して楽しめるか考えたいものだ。」

関連情報: 将棋ソフト・コンピュータ将棋 (おもちゃ箱
  詰将棋創作での将棋ソフトの活用  詰将棋創作プログラミング
  柿木将棋IX  スマホ詰パラ


コンピュータ創作の危険性 2016年6月28日追記

詰工房で、コンピュータ創作の危険性に警鐘を鳴らしている方に話を聞きました。

  • 特定ジャンルをコンピュータで全検して、全作品リストを公開することは、そのジャンルに特化して創作している人の楽しみを奪うので良くない
  • eurekaでしなくても、開発が続けばそういうことをする人がでてくるかもしれない。だから開発自体をやめるべき

といった趣旨だったでしょうか。ただしコンピュータ使用の創作自体を否定しているわけではなく、柿木将棋はその人が詰将棋を始めたときすでにあったので問題ないとして、自身でも活用されています。

詰将棋創作プログラミング 10 陣内竜堂はいつ出現するかでもちょっと書きましたが、1997年にはすでに「詰将棋の3×3金銀図式の数え上げ」という発表がなされています。「金銀3×3図式は「これにて一件落着」!」(門脇芳雄)となってしまったわけですね。

こういったことに対して詰棋界はどうしたら良いのか。吉村達也さんの考えが毎日がパラダイスの第10回で示されているので、これも参考に紹介しておきます。


機械創作コンテンツの時代 2016年6月29日追記

宮島陽人さんより、機械創作の著作権についてコメントをいただきました。ありがとうございます。詰将棋の場合は機械創作かどうか以前に、あまりお金に絡まないので裁判の判例もなく、詰将棋の著作権があるかどうかも意見がわかれているのが現状です。

柿木将棋IX詰将棋創作プログラミングのように創作支援ツールとして人間を助けているうちはとにかく、AIが人間の創作技法や評価方法を習得して独自にどんどん作るようになると、困ったことになる人もでてくるかも。著作権は別としても、大量の機械創作コンテンツが出回るようになると、人間が創作したコンテンツでもそれらと差別化できないようなものは埋もれてしまって淘汰されそうですね。

x年後にはスマホAI詰パラが立ち上がり、「1000種(人?)の創作AIが詰将棋を創作、毎日100作追加、入門コーナー、手筋コーナー、上級コーナー、難解コーナー、趣向詰コーナー、構想作コーナー、曲詰コーナーなどなどお好きなコーナーでお楽しみください」 とかなると、解いたり鑑賞して楽しむ人は大喜びでしょうね。解答者と創作したAIが会話できたり、アクセス履歴を分析してその人にあった詰将棋を出題してくれたり、かなり魅力のあるコンテンツになりそうです。

人間創作中心の既存詰将棋メディアは、なくなってしまうかというと、それに対抗していろいろな作品、企画で魅力を増していくでしょうから、よりおもしろくなっていくでしょうね。

こういう時代を詰棋界の発展と見るか、既存秩序の崩壊と見るか、立場や考え方で見方は変わってきそうです。

| | コメント (1) | トラックバック (0)

詰将棋創作プログラミング 19 5手詰将棋の特性

[2016年2月4日最終更新]

詰将棋創作プログラミング 19 5手詰将棋の特性

1.詰将棋の評価

コンピュータで詰将棋を生成させるときの問題は、詰将棋の評価である。評価といっても、発表された詰将棋を人間が評価するのとはレベルが違って、まずは詰将棋といえるかどうか判断するレベルの評価が必要になる。最終的な評価は人間がするにしても、事前に自動である程度の評価をさせないと、人間が大量のゴミの山からダイヤを探すようなことになる。人間レベルの自動評価は、発表に足る作品をたくさん自動生成できるようになってから考えればよいだろう。

詰将棋創作プログラミング 11 ランダムに自動創作続きでは、手順中の「同」の数でフィルタリングしたが、これもその目的である。まだ手順の解析はできていなかったので、棋譜ファイルを文字列検索するだけですむ簡易な判定をしたわけだ。

2.手順データから詰将棋の特性を考える

詰将棋創作プログラミング 18 取らず手筋の源流で説明したように、手順を解析して情報を追加し検索で利用できるようにした。そこで、この手順データを利用して、詰将棋の特性を考えてみたい。

といっても、ここでは各種の趣向をこらした芸術的な詰将棋はさておき、入門用の簡単な詰将棋を考える。そこで、一つのサンプルとして、「22玉、右上5×5以内の5手詰」について検討することにした。

データベースからこの条件の既存作品を検索したところ、約1700作あった。単にこの手順データを見ても特性が判りにくいので、比較対象として、5手詰1000作を「ランダムに自動創作」を使って自動生成した。ただし、余詰チェックも捨て駒チェックもバイパスして、柿木将棋が5手で駒余りなしに詰ますというだけのしろものである。

既存作品から最近の分1000作を選び、この自動生成の1000作と比較すれば、どのへんが詰将棋の特性なのか見えてくるのではないか、またある図が詰将棋といえるかどうか判断する評価関数がつくれるのではないか、というもくろみだ。

3.比較の方法

各手ごとの手順データは今のところ次のものを用意している。
(再掲。詳しくは詰将棋創作プログラミング 18 取らず手筋の源流を参照)

# 各手ごとの手順データ
# 手数 指手         先後 移動元 移動先 駒 成 玉位置 相対元  相対先
# N    TE           SG   FS,FD  TS,TD  KM NF GS,GD  FSS,FDS TSS,TDS
# 1,   2三飛成(26),1,   2,6,   2,3,   7, 2, 1,4,   1,2,    1,-1,
# 王手 元が盤 先が駒 回/離 自利き 敵利き 同 入替 連移
# OS   FB     TK     TG    NJ     NT     DO IK   RI
# 1,   1,     0,     1,    0,     2,     0, 0,   0

24項目あって、5手詰の場合このデータが5手分ある。ただし、手数と先後は自動的に決まるし、指手は後の項目と重複しているので、この3項目を除いた21項目×5手の105項目について、既存作品、自動生成の各1000作の中で各値の作が何作あるか、調べることにした。

4.調査結果

調査プログラムを実行した結果は次のような感じ。

FS 移動元(筋):
1手目 [[673, 896], [60, 11], [60, 20], [97, 23], [72, 43], [27, 7], [0, 0], [0, 0], [0, 0], [0, 0]]
2手目 [[1, 17], [98, 0], [703, 980], [121, 2], [60, 1], [6, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
3手目 [[457, 910], [95, 10], [111, 25], [159, 22], [132, 27], [35, 6], [0, 0], [0, 0], [0, 0], [0, 0]]
4手目 [[15, 53], [187, 364], [525, 315], [220, 268], [35, 0], [7, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
5手目 [[548, 775], [81, 33], [80, 80], [122, 71], [120, 36], [38, 5], [0, 0], [0, 0], [0, 0], [0, 0]]
FD 移動元(段):
1手目 [[673, 896], [77, 25], [57, 20], [66, 24], [89, 26], [27, 9], [0, 0], [0, 0], [0, 0], [0, 0]]
2手目 [[1, 17], [185, 2], [646, 980], [92, 0], [50, 1], [15, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
3手目 [[457, 910], [101, 19], [149, 17], [104, 23], [115, 24], [63, 7], [0, 0], [0, 0], [0, 0], [0, 0]]
4手目 [[15, 53], [197, 251], [503, 269], [232, 427], [30, 0], [12, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
5手目 [[548, 775], [121, 37], [101, 30], [94, 82], [87, 65], [38, 11], [0, 0], [0, 0], [0, 0], [0, 0]]
・・・

全結果は「dbc026_result.txt」をダウンロード(ブラウザで表示するときはShift_JISでエンコード)。

例えば最初の項目FS 移動元(筋)で、取りうる値は0(駒台)、1筋から9筋で全部で10個。その0~9の値が既存作品、自動生成の各1000作中何作あるかペアで示している。

最初の[673, 896]は、1手目駒打ちの図が既存作品では673作(67.3%)、自動生成では896作(89.6%)あったことを示す。かなり有意な差があることをうかがわせる数字である。

この結果を利用して詰将棋(といえる)かどうか判断する評価関数を作る予定であるが、ここでは私がざっと見て気づいたことを書いてみたい。

5.5手詰将棋の特性

1)NF 成不成(成れない、不成、成):

1手目 [[677, 898], [119, 30], [193, 72]]
2手目 [[989, 1000], [0, 0], [0, 0]]
3手目 [[478, 914], [168, 20], [343, 66]]
4手目 [[989, 1000], [0, 0], [0, 0]]
5手目 [[573, 788], [165, 90], [251, 122]]

不成も成も既存作品の方が自動生成よりずっと多い。その分紛れが多い局面を意識的に作りこんでいるからだろうか。なお、既存作品の合計が1000になってないのは手順無しの図が11あったため。

2)OS 王手種別(非王手、直接王手、離し王手、空き王手、両王手)

1手目 [[0, 0], [900, 937], [19, 14], [49, 49], [21, 0]]
2手目 [[989, 1000], [0, 0], [0, 0], [0, 0], [0, 0]]
3手目 [[0, 0], [815, 893], [58, 36], [83, 70], [33, 1]]
4手目 [[989, 1000], [0, 0], [0, 0], [0, 0], [0, 0]]
5手目 [[0, 0], [909, 927], [11, 23], [57, 48], [12, 2]]

いずれも大部分が直接王手。両王手(一番右)は圧倒的に既存作品が多く、自動生成で偶然両王手になるのはほとんどないことがわかる。

3)FB 移動元が駒台(打ち)/盤上(移動)

1手目 [[673, 896], [316, 104]]
2手目 [[1, 17], [988, 983]]
3手目 [[457, 910], [532, 90]]
4手目 [[15, 53], [974, 947]]
5手目 [[548, 775], [441, 225]]

既存作品は自動生成と比べて駒打ちが少ない。後手の駒打ち(合駒)は既存作品の方が多いかと予想していたが、5手だと合駒を使った良い手順が作りにくいせいか。

4)TK 移動先が空きマス/敵駒

1手目 [[973, 1000], [16, 0]]
2手目 [[261, 907], [728, 93]]
3手目 [[975, 1000], [14, 0]]
4手目 [[232, 924], [757, 76]]
5手目 [[986, 1000], [3, 0]]

先手は駒取りがほとんどない。後手は既存作品では7割以上が駒取りだが、自動生成では1割以下とはっきり分かれた。次の同のデータをみるとだいたいは捨て駒を取る手だが、それ以外でも詰方の駒を取る手がある程度ある。詰方の駒が消えた方が美しいという意識で創作されているためだろうか。

5)DO 同以外か同か

1手目 [[989, 1000], [0, 0]]
2手目 [[328, 968], [661, 32]]
3手目 [[988, 1000], [1, 0]]
4手目 [[292, 972], [697, 28]]
5手目 [[989, 1000], [0, 0]]

既存作品で意識的に捨て駒を入れているのが見える数字。

6)TG 移動先が玉の回り(1)/離れたマス(2):

1手目 [[0, 0], [862, 875], [127, 125]]
2手目 [[0, 0], [903, 999], [86, 1]]
3手目 [[0, 0], [805, 855], [184, 145]]
4手目 [[0, 0], [884, 999], [105, 1]]
5手目 [[0, 0], [851, 905], [138, 95]]

後手の離れたマスへの移動は既存作品の方が圧倒的に多い。これは桂打ちや飛角香の離し王手を取る手などで、ランダムでは入りにくいのかもしれない。

7)NJ 移動先への自駒の利き(0駒、1駒・・・)

1手目 [[562, 128], [398, 842], [27, 30], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
2手目 [[372, 862], [506, 132], [100, 6], [11, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
3手目 [[660, 112], [320, 847], [9, 39], [0, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
4手目 [[514, 763], [378, 217], [83, 20], [14, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
5手目 [[104, 52], [880, 909], [5, 36], [0, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]

ここもはっきり分かれた項目だ。既存作品では先手は0つまり同玉と取れる捨て駒が多く、自動生成ではヒモ付きの王手が多い。後手は逆に自動生成で8割が0になっているが、玉が守り駒のない地点に逃げる手だろう。

8)NT 移動先への敵駒の利き

1手目 [[33, 124], [480, 863], [418, 12], [52, 1], [6, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
2手目 [[760, 977], [223, 23], [6, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
3手目 [[80, 145], [601, 841], [258, 14], [42, 0], [8, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
4手目 [[853, 939], [133, 58], [3, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
5手目 [[115, 94], [838, 903], [33, 3], [2, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]

先手の王手に自動生成では1枚だけ、つまり玉しか利いてないのが8~9割。それに対し、既存作品の1、3手目では2枚以上利いている数もかなりある。同玉、同xといろいろ受けのある捨て駒、あるいは焦点の捨て駒ということだろう。

6.詰将棋らしい作品を作るには

上記の特性から、詰将棋らしい手順にするには、初形のランダム生成では難しい(効率が悪い)ことがわかった。対策としては二つの方向が考えられる。

1)詰将棋らしい手順が出そうな配置(どんな配置?)を優先して生成する
2)詰上りから逆算して、詰将棋らしい手が出る方向に逆算を進める

逆算のプログラムは、まだ一度も書いたことがないので、少し試行してみようかな。

| | コメント (0) | トラックバック (0)

詰将棋創作プログラミング 18 取らず手筋の源流

[2016年1月30日最終更新] リストを修正

詰将棋創作プログラミング 18 取らず手筋の源流

1.手順データの拡充

詰将棋創作プログラミング 15 データベースを手順で検索で、手順パターンで既存作品を検索する話をした。続く詰将棋創作プログラミング 16 手筋を手順パターンで表現では、手筋を表現するには、手順のデータがまだ不十分として、拡張する項目の案を書いた。

その案を実装して、拡張された手順ファイルを作成するプログラムを開発した。

ktbu026.rb 手順ファイルに項目追加
tejun.txtを読み込み、項目を追加してtejunx.txtに書きだす

16で述べた以外にも追加した項目もあり、全部で下記の項目を検索に利用できるようになった。

# 各手ごとの手順データ
# 手数 指手         先後 移動元 移動先 駒 成 玉位置 相対元  相対先
# N    TE           SG   FS,FD  TS,TD  KM NF GS,GD  FSS,FDS TSS,TDS
# 1,   2三飛成(26),1,   2,6,   2,3,   7, 2, 1,4,   1,2,    1,-1,
# 王手 元が盤 先が駒 回/離 自利き 敵利き 同 入替 連移
# OS   FB     TK     TG    NJ     NT     DO IK   RI
# 1,   1,     0,     1,    0,     2,     0, 0,   0

# 駒     KM= 歩~玉:1-8 と~龍:9-15
# 成     NF= 成れない:0 不成:1 成:2
# 王手   OS= 非王手:0 直接王手(桂も):1 離し王手:2 空き王手:3 両王手:4
# 元が盤 FB= 移動元が駒台(打):0 移動元が盤上:1
# 先が駒 TK= 移動先が空きます:0 移動先が敵駒(駒取り):1
# 回/離  TG= 移動先が玉の回り:1 移動先が玉から離れたマス:2 (玉の手は1)
# 自利き NJ= 移動先への自駒の利きの数(移動後)
# 敵利き NT= 移動先への敵駒の利きの数(移動後)
# 同     DO= 移動先が前の手と違う:0 移動先が前の手と同じ(同):1
# 入替   IK= 移動先が前の手の移動元と違う:0 移動先が前の手の移動元と同じ:1
# 連移   RI= 連続移動ではない:0 2手前の駒が連続移動:1

この拡張した手順ファイルを正規表現で検索するプログラムを作成した。今後の活用を考えて、検索対象の手数指定(5手詰だけを検索とか)、同一作の除外をできるようにした。

ktbu027.rb 正規表現による手順検索 拡張項目を指定可能に
・対象詰将棋の手数範囲(最小手数、最大手数)を指定可能に
・同一作は対象外とするオプションを追加(同一図番号リストを利用)

2.取らず手筋作品を検索

入替(入れ替わり)の項目は、若島正さんが詰将棋パラダイス2015年8月号、11月号で「夢想の研究」で取り上げている「取らず手筋」(ウムノフ)を検索できるように追加したものである。「取らず手筋」とは、若島さんの命名で、取れる駒をあえて取らず、(捨て駒などで)他のマスに移動させてから元いたマスに動く(駒取りにならない)という手筋のこと。

論考では移動させる手段を捨て駒に限って考察しているので、ここでも、その条件での検索を考える。

この手筋を上記の手順データを用いてパターン化すると、次のようになる。

[/SG=2.+KM=[^8].+DO=1/,/FB=1.+IK=1/]

後手(SG=2)が玉以外の駒(KM=[^8])で同xと取る(DO=1)、その駒が元いたマスに(IK=1)盤上の駒が移動(FB=1)という指定。

実際に検索してみたところ、同一図は除外して、5350作が見つかった。

3.取らず手筋の源流

若島さんは前述の「夢想の研究」で無双、図巧の取らず手筋作品を分析していて、それ以前の取らず手筋作品としては勇略第76番を紹介し、「『無双』と『図巧』以前には、取らず手筋に属するごくわずかな例が見出させるにしても、それはたまたま取らず手筋になっているという偶然の産物であり、作者による意識的な産物ではない。」としている。

そこで、検索結果から無双、図巧も含めて、それ以前の取らず手筋作品をリストしてみよう。

##### No.246182 伊藤看寿  17手 将棋図巧 P013 宝暦5 
##### No.246190 伊藤看寿  21手 将棋図巧 P021 宝暦5  7手目76桂以下余詰
##### No.246192 伊藤看寿  23手 将棋図巧 P023 宝暦5 
##### No.246196 伊藤看寿  43手 将棋図巧 P027 宝暦5  11手目62馬以下早詰
##### No.246202 伊藤看寿  15手 将棋図巧 P033 宝暦5 
##### No.246204 伊藤看寿  17手 将棋図巧 P035 宝暦5 
##### No.246205 伊藤看寿  13手 将棋図巧 P036 宝暦5 
##### No.246206 伊藤看寿  23手 将棋図巧 P037 宝暦5 
##### No.246207 伊藤看寿  29手 将棋図巧 P038 宝暦5 
##### No.246210 伊藤看寿  23手 将棋図巧 P041 宝暦5 
##### No.246211 伊藤看寿  27手 将棋図巧 P042 宝暦5 
##### No.246225 伊藤看寿  25手 将棋図巧 P056 宝暦5 
##### No.246234 伊藤看寿  31手 将棋図巧 P065 宝暦5 
##### No.246240 伊藤看寿  39手 将棋図巧 P071 宝暦5 
##### No.246242 伊藤看寿  35手 将棋図巧 P073 宝暦5  4手目同馬以下不詰
##### No.246246 伊藤看寿  19手 将棋図巧 P077 宝暦5 
##### No.246253 伊藤看寿  31手 将棋図巧 P084 宝暦5 
##### No.246254 伊藤看寿  15手 将棋図巧 P085 宝暦5 
##### No.246439 久留島喜内  41手 将棋妙案 P0033 宝暦? 古写本 26歩が無いのが正
##### No.246449 久留島喜内  35手 将棋妙案 P0043 宝暦? 詰将棋大全集 これが原図
##### No.246542 久留島喜内  11手 橘仙貼璧 P036 宝暦? 将棋妙案32番
##### No.246560 久留島喜内  99手 橘仙貼璧 P054 宝暦? 
##### No.246571 久留島喜内  23手 橘仙貼璧 P065 宝暦? 
##### No.246578 久留島喜内  11手 橘仙貼璧 P072 宝暦? 
##### No.246579 久留島喜内  35手 橘仙貼璧 P073 宝暦? 将棋妙案43番
##### No.246581 久留島喜内  43手 橘仙貼璧 P075 宝暦? 
##### No.246585 久留島喜内  39手 橘仙貼璧 P079 宝暦? 将棋妙案33番 この方が正図
##### No.246618 久留島喜内  7手 橘仙貼璧 P112 宝暦? 
##### No.246647 三代宗看  11手 将棋無双 P001 享保19 
##### No.246648 三代宗看  47手 将棋無双 P002 享保19 
##### No.246655 三代宗看  29手 将棋無双 P009 享保19 
##### No.246666 三代宗看  45手 将棋無双 P020 享保19  豪快な伏線作品
##### No.246668 三代宗看  33手 将棋無双 P022 享保19 
##### No.246681 三代宗看  17手 将棋無双 P035 享保19 
##### No.246683 三代宗看  47手 将棋無双 P037 享保19  簡単な修正は困難
##### No.246684 三代宗看  13手 将棋無双 P038 享保19 
##### No.246686 三代宗看  33手 将棋無双 P040 享保19  2手目42玉で不詰
##### No.246693 三代宗看  13手 将棋無双 P047 享保19 
##### No.246704 三代宗看  31手 将棋無双 P058 享保19 
##### No.246707 三代宗看  39手 将棋無双 P061 享保19 
##### No.246711 三代宗看  9手 将棋無双 P065 享保19 
##### No.246718 三代宗看  41手 将棋無双 P072 享保19  金鋸の原型
##### No.246722 三代宗看  31手 将棋無双 P076 享保19  19手目53香成で余詰
##### No.246734 三代宗看  31手 将棋無双 P088 享保19  14手目2七龍で不詰
##### No.246740 三代宗看  57手 将棋無双 P094 享保19 
##### No.246745 三代宗看  41手 将棋無双 P099 享保19 
##### No.246888 伊野辺看斎  41手 象戯手段草 P0003 享保9 
##### No.246889 伊野辺看斎  53手 象戯手段草 P0004 享保9 
##### No.246914 伊野辺看斎  31手 象戯手段草 P0029 享保9 
##### No.246974 伊野辺看斎  35手 象戯手段草 P0089 享保9 
##### No.247007 三代大橋宗与  17手 将棋養真図式 P019 享保元  手鑑54番
##### No.247031 三代大橋宗与  21手 将棋養真図式 P043 享保元  手鑑88番
##### No.247036 三代大橋宗与  23手 将棋養真図式 P048 享保元 
##### No.247061 三代大橋宗与  21手 将棋養真図式 P073 享保元 
##### No.247343 二代伊藤宗印  25手 将棋勇略 P0076 元禄13 
##### No.247624 五代大橋宗桂  11手 象戯手鑑 P032 寛文9 
##### No.247634 五代大橋宗桂  17手 象戯手鑑 P042 寛文9 
##### No.247642 五代大橋宗桂  31手 象戯手鑑 P050 寛文9 
##### No.247645 五代大橋宗桂  17手 象戯手鑑 P053 寛文9 
##### No.247646 五代大橋宗桂  17手 象戯手鑑 P054 寛文9 
##### No.247661 五代大橋宗桂  17手 象戯手鑑 P069 寛文9 
##### No.247666 五代大橋宗桂  27手 象戯手鑑 P074 寛文9 
##### No.247674 五代大橋宗桂  11手 象戯手鑑 P082 寛文9 
##### No.247680 五代大橋宗桂  11手 象戯手鑑 P088 寛文9 
##### No.247770 初代伊藤宗看  13手 将棋駒競 P073 慶安2   
##### No.247776 初代伊藤宗看  19手 将棋駒競 P079 慶安2   
##### No.247804 三代大橋宗桂  15手 将棋衆妙 P005 正保3   
##### No.247817 三代大橋宗桂  15手 将棋衆妙 P018 正保3   
##### No.256612 別所素庵  15手 素庵作物 P030 江戸初 諸国作物集50
##### No.256664 別所素庵  15手 素庵作物 P083 江戸初 諸国作物集80
##### No.256678 別所素庵  13手 素庵作物 P097 江戸初 

リストの下の方は、年代が不明あるいはTumeBaseが認識できないため年代順のソートで後ろになったもの。同一作の除外の際、こちらがオリジナルとされてしまうのでちょっと不便だ。改善を検討しよう。 [1月30日 発表年月表記とオリジナル判定を修正、リストを差し替えた。]

衆妙の2作はいずれも歩を動かす作品であまり不利感がない。駒競の2作も歩と桂で、意識して創作した感じではない。手鑑では作品数も一挙に9作に増え、ちょっと見た感じでは内容的にも意識して創作しているようだ。ちゃんと見てみなければいけないが、五代宗桂が取らず手筋の創始者といえるのかもしれない。

作品はいずれも詰将棋博物館で見ることができるので、興味がある方はどうぞ。

| | コメント (0) | トラックバック (0)

より以前の記事一覧