なして、この話題?
こんにちは。惰性慣性です
こんにちは。張り出し記事にも律儀に付き合ってる働き者な夢未で〜す
律儀に付き合う? 元々はお前さんが訊いてきた話題だろうが……
そだっけ?
忘れたんかーい!
そんなことより、内容を早!
(☝キレたふりをして誤魔化し? 略してキレゴマ?)
何とも逆ギレ的だが、まあいい。本記事は前回記事『趣味数って何?』中にて出たお前さんの質問に対する回答なんで、まずはお前さんから経緯を説明してもらわんとな
うっ。それは……えっと……
ん? もしや……
何だっけ? てへぺろ❤
ほほう。もう忘れとる、と。では、前回記事を読み直しの上、今回記事に至る流れをしっかり思い出すように。ほれ
(☝と言いつつ、前回記事(下記)を表示)
ひぇ〜。しんど……
(☝熟読するふりをして実は雑に斜め読み)
……
(☝横から眺めて前回記事の内容を再確認)
(☟読み終わった直後、いきなり)
ふう
(☝上記の表情&発言&ポーズで発散して復活?)
だから、その顔は止めろと言っとるじゃろがい!
(☝夢未さんが前回記事でもばなな顔を連発した結果からの反応?)
仕方ないな。それはそれとして、経緯の説明を頼む
えっと。趣味数ブログってのは、パズルやゲームをネタにしておっちゃんが好き勝手しゃべるとこで……
語弊のある言い方だが、強ち間違いでもないので、まあ良しとしよう……。それで?
好き勝手ってゆっても、それなりにおっちゃんの好みがあって、その一つがなんてゆ〜かアレで……
誤解を招きそうな言い回しではあるが、まあいい。で、アレとは?
ゲームやパズルの自動プレイヤーのことだな。ときに、プレイヤー即ち『パズルやゲームで遊ぶ人』と言ったかったんだろうが、『遊び人』はちと意味が違うのではないかな? 加えて、『気色悪い』ってのは、お前さんの個人的な感想に過ぎんと思うが……
それそれ、自動プレイヤー。でもって、ゲームの自動プレイヤーさんは、トランプゲームとかを一人で遊びたいときにお相手してくれるんで、割と良い子なんだけど……
お前さんでも直ぐに納得できるような実用性がある、と
でもでも、パズルの自動プレイヤー君は、パズルを勝手に解いちゃって人の楽しみを奪う嫌なヤツ!
そんな使い方をしたら確かに嫌なやつだが、そういうことではない
とかなんとかおっちゃんが言うから、『ならなんなの?』って感じで。そしたら、『作りたいから作る』、『ヤりたいからヤる』みたいな
『やる』を『ヤる』と書くとニュアンスが悪いゆえ止めて欲しい
それはそれとして、研究者が自動プレイヤーを開発する動機や目的は必ずしも実用性に限定されない、と言いたかったんだが
そんな流れで、『じゃあなんで作るん? kwsk(くわしく)』って訊いたら、『面倒臭いから先送り』って結論になったような
『面倒臭い』のが理由ではなく、内容が『少々長くなる』および『ブログ紹介記事に書くには深入りしすぎ』なんだが。更に、『先送り』ではなく『別記事として切り分け』!
そうともいうねっ❤
いやいや、全く違うんだが……
まあ、ここまでの概説、お前さんにしては頑張った方か?
どゆ意味?!
ぐぬぬ……
ではこの辺で、本題⸺研究者がパズルの自動プレイヤーを開発する動機についての考察⸺に入るとしよう
結局のところ、作りたいから作る……
まず言葉の使い方なんだが、パズルの自動プレイヤーは、パズルを自動的に解く者ってことで自動ソルバー (automatic solver)、あるいは短縮して単にソルバー (solver) と呼ぶことが多い
カタカナ用語ウザす。ソルバーなんて言葉、聞いたことないし
『ソルブ (solve)』は『解く、解決する』という意味の英単語で、それを『解く者』に変化させたのが『ソルバー (solver)』だ。『走る』という意味の『ラン (run)』が変化して『走る者、走者』という意味の『ランナー (runner)』になるのと同様
参考または蛇足: 綴りは b ではなく v ですので、本当はソルブ⇒ソルヴ、ソルバー⇒ソルヴァーと書くところなのかも知れません。が、多くの論文、解説記事等では『ソルバー』と書いている感触です。加えて、『ソルヴァー』といった書き方は、そこはかとなく衒学的な印象が……。☜『衒学』という単語を使うこと自体が衒学的ですか……
英語の意味を説明されてもウザさが減るもんじゃなし〜
で、あるか。そこは我慢して欲しい
……本題に入るが、最初に言っておく。動機の根本を追求すると、結局のところ『作りたいから作る』
パズルやゲームの自動プレイヤーはまあ、研究分野的には人工知能 (AI, Artificial Intelligence) なんだが。この分野の研究者には、古くからの根源的な知的欲求がある
読めた! もろたで工藤!
……しかしてその欲求とは⸺『知能とは何か?』、『コンピューターはどこまで人間の知能に近づけるか?』、『はたまた越えられるのか?』
『知能とは何か?』、『コンピューターはどこまで人間の知能に近づけるか?』等を追求する一環として、人間ソルバーの知的行為を摸倣する自動ソルバーを開発したり、その性質を調べたりしたくなるのだな
でもそれって、『知りたいからやる』ってこと。要するに『やりたいからやる』
左様
知能とは何かを考える知能……何とも自己言及的
む?
ほよよん。ばなな
またもやその顔!
ふう
(☝上記の表情&発言&ポーズで発散して復活?)
メタいとかなんとか、わけわかんない話はおいといて。コンピューターが人間の知能を超えるなんてこと、あるん?
コンピューターが最初に実務適用された分野として例えば、経理というか会計処理なんてのがあるぞ
そりゃ、単なる足したり引いたりに限れば速いのかもしんないけど……
そうかな? では、いかにも高度な知能という感じの例として、チェス、囲碁、将棋といった古くからある奥深いゲームの世界チャンピオンってのはどうだ?
確かに、そゆのは『いかにも』かも。名人級になると、何がどうなってるのかさっぱりわからん、ってレベルで強いし〜
そこでだ。まずチェスだが、1990年前後にコンピューターが世界チャンピオン級に勝つ『こともある』ようになった。そして2005年頃から後はもはや、人間がコンピューターに勝つのは難しくなってきているとか
む?
囲碁は長らく、チェスよりコンピュータープレイがずっと難しいと考えられていたんだが。2010年代に深層学習を活用するブレークスルーがあり、2016年辺りからコンピューターが世界トップ級のプレイヤーに勝つようになってきている
むむ……
将棋はチェスに似たゲームだが、ルール上、チェスより難しいと考えられてきた。加えて、将棋はほぼ日本限定ゆえ研究者もほぼ日本限定的となり、世界的に遊ばれているチェスに比べコンピュータープレイヤーの進化が遅かった面もある。しかしついに、2017年辺りから名人級に勝てるようになってきたという。上述した囲碁分野での深層学習活用法も援用されとる模様
参考: 詳しくは、『コンピューターチェス』、『コンピューター囲碁』、『コンピューター将棋』などでインターネット検索を是非
むむむ。コンピューターやばすぎ
更に『知的なトーク』についても、お前さん自身が前回、『AIひろゆきが進化したら本人は不要になるかも』的な発言をしていたと思うんだが
☝AIひろゆき云々の話は、前回記事『趣味数って何?』の段落『趣味数ブログの主な話題』中にある『ロジック系パズル自動生成の話題から派生したAI生成に関する脱線』の箇所を開くと出てきます
うっ。そうだった……
でもでも、体を使う仕事とか職人の手作りとかがどんどん機械に置き換えられてきてるのに。頭を使う仕事までコンピューターに取られちゃったら……。皆失業じゃん。ホームレスの嵐じゃん
現状では、全ての仕事が機械とコンピューターに置き換えられるところまでは行きついていないと思うが。ひょっとすると将来、次第にその方向になるのでは、という危惧はあるな
う〜ん。毎日が日曜日状態に突入してるおっちゃんはまあ、いいかもだけど。残りの人生が長いあたしとか、一体どうすりゃいいっちゅうねん!
個人レベルで悩んでも詮無い問題だと思うぞ。それにアレだ
アレって何よ?
今後も自動化技術が良い意味で進化し、核融合発電等によりエネルギー問題も解消したら。面倒な仕事は機械とコンピューターに任せ、人類は皆、悠々自適状態、てな未来もありえんことではないし
ならいいけど。でもでも、仕事を任せてるコンピューターが暴走したらターミネーターの世界、かも知れないじゃん
過度に自律性を与えたり、どう変化するか予測困難な『自我』を与えたりしてしまうと、そうならんとも限らん⸺
が、そういった社会学未来編的な領域には詳しくないし、わしが進めたい趣味数ブログの方向性でもないんで、この話題は終了
え〜。ケチ〜
惰性慣性
(☟趣味数的でない要求をスルーしつつ)
さて、ここで本件を終わらせると身も蓋もないので、もう少し具体的な動機を挙げてみるぞ
(☝社会学未来編(?)的な話の続きを終了されて、ちと不満?)
でも、まっ、ようやく本当の本題、ってとこか
具体的な動機1. パズルの答えがあるか知りたい
まずは……。ソルバーを作る動機の一つとして、解ける問題かどうか判定したい、というものがある。堅苦しく言うと『解の存在判定』だな
むむむ。解けるか解けないかの判定って、もしや……
解けない問題なんてもんがあるんかい?! そんなんインチキじゃん!
そこか?!
む。表出数字って、前回記事のとき聞いた気もするけど、何だっけ?
☝前回記事『趣味数って何?』の段落『趣味数ブログの主な話題』中にある『パズル雑誌系の各種パズルに関する数学的な話題の例』の箇所を開くと出てきます
表出数字ってのは、パズル作家/愛好家界隈で使われる用語らしい。意味は、数独/ナンプレの問題で最初から書いてあるヒントの数字
そっか、そっか。表出数字はわかったけど……。適当に作ると答えが無い問題になりがちだとすると、パズル雑誌社って、そういうインチキ臭い問題も出題してるん?
いやいや。そんなことはない。真っ当なパズル雑誌社なら、解が丁度1つになる問題のみ出題するという暗黙のお約束があり、律儀に遵守しているはず
誤って解がゼロまたは2つ以上の問題を出題してしまうことも稀にあるのだろうが……。わしがニコリ社のものを中心に多くのロジック系パズルを解いてきた経験では、解が丁度1つ以外の『お約束破り』問題に遭遇した記憶は無い
へ〜。そんなお約束があるんだ〜
まあ、答えが幾つもあるのは、別にそれでもいいって思うけど
解がゼロの場合だけでなく、2つ以上の場合も排除されている件については、なぜか昔からそういうものだとしか……
江戸時代からある詰将棋なるパズルでも、既に『複数解⸺いわゆる余詰あり⸺問題はよろしくない』との評価だったらしいので、洗練されていない不完全な問題との印象だったのだろう
あっそ。まっ、謎の伝統ってことで
そうだ。急に閃いたんだけど、答えが幾つもあると、解答欄が長っちょろくなってウザ、とか? プレイヤーさんの正解チェックが面倒になってウザ、とか?
ありえるな。っと、わしも急に思いついたんだが、解が複数ある問題は解き味が悪い傾向があるのかも知れん。これは……吟味が必要だな
☝パズルの『解き味』については、前回記事『趣味数って何?』の段落『趣味数ブログの主な話題』中にある『解き味に関する細かすぎて伝わらない(?)話』の箇所を開くと、多少の怪しい解説もどきが出てきます
ふ〜ん。頑張ってね〜
まるで他人事?!
正にそのとおり!
ぐぬぬ。正論ではあるが……
んなこたぁどうでもいいとして、適当に問題を作るとお約束破りになりがちだとすると、パズル雑誌の問題はどうやって作ってるんだってばよ?
そこがパズル作家の腕の見せ所ってやつだ。逆に言えば、いい加減な配置で真っ当なパズル問題をサクサク作れるのなら、そもそもパズル雑誌系のパズル作家自体が不要で存在しとらんわけで
なお、デキるパズル作家は、お約束遵守の基本に加えて、難易度調整や解き味の追求なども行うはず
そゆことか
実は更に、万全を期すため、問題作成者以外の上級プレイヤーがチェック的に解いて、解の存在と一意性を確認している場合が多い模様。併せて難易度の評価もな。雰囲気としては恐らく、解き味の評価まで
特に、読者から投稿された問題は、ぱっと見では品質が良くわからんわけで、解きチェックはほぼ不可避と思われ
なんと。読者投稿の問題なんてあるんだ〜
割と
注: 惰性慣性親父はパズル雑誌社等の関係者ではありませんので、一読者としての予想を述べているだけと思われます。このため実態とずれているかも知れませんが、ご了承の程、何卒よろしくお願い申し上げます
実際のところ、パズル雑誌読者の大半は解き専だと思われる。まあ、わしもだが
ところが、少数派ではあるものの、『パズルを解くのも良いけれど、自分で作りたい』的な『もの作り志向』の人もいるんだな、これが。パズル作家の卵というか
もの作り好き好き人間っているよね
そんな人々が、雑誌社の問題募集に応じてくる。人気のパズルだと、思いのほか多くの問題が集まる感触
パズルの問題なんか募集しても、ちっとも集まらないんじゃ? なんて一瞬思ったけど、趣味のパズル作家ってそれなりにいるんだねぇ
中には、パズル作りにどっぷり浸かって、高品質な問題を多数投稿する人が現れてきたり。すると、パズル雑誌社がスカウトしてお抱えにしたり
パズル作家誕生秘話
パズル雑誌社がスカウト云々は単なるわしの想像だが
後付け誕生秘話かい!
読者投稿云々はさておき、お約束破り問題の排除は、現状ではパズル作家やお約束チェック要員が対応していることが多いと思われる
こういった処理をコンピューターで行うのが自動ソルバーとなる。以下では、紛らわしい場合を除き、自動ソルバーのことを単にソルバーと呼ぶ
数独/ナンプレは世界的に有名なんでソルバーの検討が進んでいるが、それ以外のロジック系パズルでも、パズル自体の知名度見合いでソルバーに関する報告や論文等が増えてきている感触
そんなん作ったら、人間のお仕事が奪われちゃうんじゃ……
既に言ったとおり、そういった社会学的な考察は当ブログの範疇外だ。そもそも、わしはパズル雑誌社等の実情を殆ど知らんしな
ケチ〜
(☟趣味数的でない要望を完全スルーしつつ)
なお、お約束破りチェックでは、解があるかどうかだけでなく、解の一意性判定も行う必要がある。解が2つ以上ないことの確認だな
ソルバーは解が無ければ『なし』と答え、解があればその1つを解答するが、全ての解を列挙する処理形態にすることもできるので、一意性判定にも使えるわけだ。といっても、一意性を確認するだけなら全解を求める必要はない。二つ目の解が見つかった時点で『お約束破り』と分かるからな
ふ〜ん
(☝細かい話はどうでもいい?)
考えてみると、ソルバーは投稿問題のお約束遵守チェック等に使えるわけだから、実用性があると言えんこともないな。利用局面はかなり限定的だが
でもでも、そゆのって人の仕事を奪う使い方じゃ……
先程も似たような発言をしていたな⸺
まあ、その辺は利用する人の考え方次第
出たよ。兵器にも使える技術を開発した科学者の言い訳、的な。原子力とか
そういった話は古くからあるが……。16世紀に自動編み機を発明したものの『手編み職人の仕事を奪う』論争を引き起こし、中々商用展開できなかったウィリアム・リー (William Lee) 先生(発音)とか
19世紀にダイナマイトを発明、商用展開して巨万の富を得たものの『死の商人』といった誹りを受け、そのイメージを払拭する等のため、得た富を突っ込んでノーベル賞の財団を創設したアルフレッド・ノーベル (Alfred Nobel) 先生(発音)とか。そう言えば、ノーベル賞に数学が含まれない理由、なんて話もあったような
そこんとこ、kwsk!
いやいや。分野が機械工学や物理、化学になるんで、本ブログの主題とはちと違うし。科学技術の商用化に伴う光と影といった社会面は更に激しく違う。よって割愛
ちっ、乗ってこないか〜
舌打ちかい!
……まあいい
具体的な動機2. パズル問題の自動生成に使いたい
さて、ソルバーができたら、パズル問題の自動生成にも繋がる
え〜っ?! 問題を解くのと作るのは全然違うっしょ!
素朴にはそう思うだろうが、実は密接な関係がある。が、その前に⸺
例によって言葉の使い方だ。パズル問題等を自動生成する仕組みは、パズル問題を自動的に生成する者ってことで自動ジェネレーター (automatic generator)、あるいは短縮して単にジェネレーター (generator) と呼ぶことが多い
またもやカタカナ用語とかテラウザす。ジェネレーターなんて言葉、聞いたことないし……って、あれっ。なんか聞いたことあるような気も……
ジェネレーターは『何か』を生成する者/仕組みなんで、『電気』を生成する装置、即ち発電機という意味で使われることが多い
更に、『何かを生成する者』は如何にもな単語なんで、SF系の小説、アニメ、ゲーム等でも偶に出てくるかも知れん。何らかのエネルギーやパワーを生成する、といった感じか
う〜ん。発電機は初耳だけど……。アニメとかゲームに出てきたから聞いたことあるのかなぁ……
ともあれ、『ジェネレート (generate)』は『生み出す、生成する』という意味の英単語で、それを『生成する者』に変化させたのが『ジェネレーター (generator)』だ。以下では、『パズル問題』を生成するコンピューター処理という限定的な意味で使うが
だから、英語の意味を説明されても、ますますウザくなるだけだっちゅーの!
そこは冷静に
(☟謎の言い回しを無視して)
ジェネレーターの作り方としては、少なくとも2通りの方法がある。一つめは、パズル作家の作り方を摸倣する方法。二つめは、コンピューターの計算パワーに頼ったゴリ押し的な方法で、力まかせ探索 (brute-force search)、しらみつぶし探索 (exhaustive search) あるいは generate and test search に似た手段を用いる
注: 力まかせ/しらみつぶし探索は本来は全ての解を探し出すための方法と考えられますが、パズル問題の自動生成では殆どの場合、数理的に厳密な意味での全問題を生成できるようにする必要はありません。そこで、抜け漏れが無いように細心の注意を払う点に関しては適当に手抜きして、むしろ生成効率が上がる方向に力を入れたりします
え〜。パズルの作り方なんて、きっとパズル作家の虎の巻じゃん。そんなん教えてもらえるわけないっしょ!
参考: 上記動画で解説されている安福先生は、動画UP当時は編集長でしたが、現在(記事執筆時点)では社長に就任されていますね
そんな雑誌を愛読してたんだ
そこかい!
ってか、「愛読してた」ってことは、今は読んでないわけ?
うーむ。何年前だったか……近くの書店で販売されなくなってしまってな
なら、遠くの書店に行くなり amazon とかでポチればいいじゃん!
それはそうなんだが、同時期に仕事も忙しくなったりしてな
へ〜。給料泥棒でも忙しくなることあるんだ(www)
むっ!
でもでも、定年退職して暇になったときに再開すればよかったんでは?
その頃からは、ロジック系パズル以外も含めた数理的なパズル/ゲーム全般の調査検討に力を割いてきとるんでな
あっそ
(☝成り行きで話を引っ張っただけで、実はどうでもいい?)
話が逸れたが、パズル作家の解き方は、公開されたとしても、細かいステップがアバウトというか雰囲気だったり恣意的だったりすることもある。そういった箇所を詰めないといけないんで、あっさり摸倣できるとは限らん
そうなん?
誰がやっても寸分違わず同じことができるレベルに手順を詳細化、具体化しなければ、コンピュータープログラムを書くことはできん
面倒臭!
左様。パズル作家の作り方が公開されている場合でも、詳細化の手間が容易ではないことがありえる。加えて、作り方が公開されていないパズルも多々ある。公開されている数独/ナンプレはむしろ例外的かも知れん
なお、パズル作家の模倣をする方法がうまくいく場合は、ソルバーは使わなくて済むだろう。とはいえパズル作家の方法でも、問題を作成する作業の中に、問題を解く作業が微妙に入り混じっている感触ではあるが
へ〜
(☝細かいことはどうでもいい?)
そんなこんなで第一のパズル作家摸倣式が駄目なときは、第二の方法、即ち力まかせ探索系の方法に頼るのがよくあるパターン。ソルバーが必要になるのはこちらの場合だな
何か名前からして手間がかかりそうな悪寒
まあな。単純明快な方法ゆえ色々なパズルに適用可能なんだが、パズル毎のルールの特徴に合わせて工夫しないと、非常に重いというか、なかなかお約束遵守な問題が出てこないことになりがち
そんなアバウトなこと言われても、パズルを解くやつを使ってパズルを作れるって話につながらないんだけど
その点だな。ざっくり言うと、次のような流れだ⸺
なんてゆっか、①で読者投稿問題を集めてきて、②でお約束チェック要員が調べてお約束OKな問題だけ残すって感じ。でもって、②はきちんと解けるかどうかのチェックだから、人の代わりにソルバーってのを使うのはまあ分かるけど⸺
①で問題候補を作るとこが、結局、謎のままじゃん!
うむ。気持ちは分かる。問題作成ではなく問題『候補の作成、ってところがポイントなんだが
ナニ、その微妙すぎる違い! わけがわからないよ!
問題候補の作成では、パズルの制約条件的なルールに適合しているかどうかはあまり考えないで雑に作る。といっても、どう作るかの詳細はパズル種別に依存するんで、ここでは数独/ナンプレの場合を例にとって説明しよう
そこが肝心なとこっぽいんで、4649!
む。4649は素数の臭いがする
出たな。妖怪素数なめ!
なんじゃそりゃ?
んなこたど〜でもいいから続きを早!
了解だ。数独/ナンプレの問題は、9×9のマスの中に適当な個数の表出数字を散りばめた形になっている。これが盤面ルールと考え、この点は遵守して候補を作る
ありがちな問題では表出数字の個数は20から30程度ゆえ、まずはこの個数をランダムに決める。表出数字が少ない方が難しい問題になる傾向があるようなんで、表出数字の個数は人間が指定してもよいかも知れん
ランダムとな?
サイコロを振って決める感じだ
そゆことか
コンピュータープログラム中では、疑似乱数という技法を使ってサイコロ振りを摸倣するのが普通だが
ふ〜ん
(☝コンピュータープログラムの詳細にはまるで興味がない?)
で、表出数字の個数を決めて、例えば25個になったとしよう。そうしたら、表出数字が25個になるまで盤面にランダムに数字を置いていく。具体的には、9×9=81個あるマスの中から、ランダムに数字を記入するマスを選ぶ。次に、1から9までの数字を一つランダムに選び、先に決めた記入マスに書く。これを25個になるまで繰り返す
注: ランダムにマスを選ぶと、既に数字を記入したマスと同じマスが重複して選ばれる可能性があったりしますが、そういった細かい話は、数独/ナンプレ問題の自動生成法といった個別パズル記事で扱うとのこと
さすれば、盤面に表出数字が25個入った問題候補の出来上がり
それなら候補ができそうって雰囲気は感じたけど、すっごく適当な作り方!
そのとおり。雑だからこそ簡単に作れる。これが正に、問題そのものでなく問題の候補を作るということ。で、雑作りの候補がお約束遵守の正しい問題になっているかどうかは、ソルバーを使って確認すればよいわけだ
それはいいんだけど、サイコロって1から6なのに、1から81とか1から9とかから1つ選ぶって、どないすればいいねん?
そこんとこが怪しいから、おっちゃんがさっき説明したやり方は却下!
これはまた妙なところを気にしとるな。既に述べた疑似乱数を用いれば、選択する数字の範囲が1から81でも1から9でも比較的容易に対応できるんだが
そうやって謎の技を使えばできるとか言って誤魔化そうとするし。そういうの、良くないと思います
別に誤魔化しではなく事実なんだが……。うーむ。正攻法で疑似乱数の簡明な説明をしようとすると長くなるし。かといって、端折った説明では『ばなな顔』とかだろうし。……っと、そうだ。現実のサイコロを用いる路線でお茶を濁⸺ではなく、とりあえずは納得してもらうことにするか
ん? 現実のサイコロ? って……物理サイコロ(www)
その物理サイコロでも、1から9といった場合に対処できるって話
だから、物理サイコロは1から6までだとあれほd!
うそでしょ! 何それ?!
インターネット検索してもらえば商品の写真が出てくるが、わしもその昔に買ったものを持っていたはず。確か机の引き出しに……
(☝と言いつつごそごそと探す親父)
む…………
……あった、あった。ほれ、実物
マジだ……
ってか、こ〜ゆ〜のって何に使うん?
テーブルトークRPG (TRPG) 等で使うようだな
へ〜。おっちゃんはそんなんやったことあるんだ〜
若かりし頃に多少やっただけで、それから〇十年やっとらんが
〇十年前に使ってたヤツがよく残ってたね。物持ち良すぎ
嵩張るものではないし、形が面白いんでコレクター的にな。後、偶に乱数的な数値が欲しいときに10面ダイスを使うことがある
ところで、なんで急に変なサイコロの話に振ったん?
サイコロは振るものゆえ
マジな質問をしてるのにしょうもない駄洒落回答とか、サイアク
……真面目な話に戻ると、サイコロで乱数の話をしたら、お前さんがサイコロはあくまでも1から6という点に固執していたようなんでな。コンピューターの中だけでなく、現実の世界でも0から9といったサイコロがあることを理解して欲しかったわけで
例えば数独/ナンプレのマスに1から9までのどれかの数字をランダムに入れたければ、物理でやるなら10面ダイスを使えばよいわけで。なお、コンピュータープログラムで疑似乱数を使うときも、サイコロの使い分け的なことができる
それは分かったことにするけど。でもでも、10面ダイスだと0も出るでしょ? そんときはどうすんの?
0が出たらもう一度振れば問題ない
何回振っても0ばっかし出るかも知れないじゃん
イカサマサイコロならいざ知らず。もし通常の10面ダイスを何回振っても0ばかりだとすれば、振った者は超能力者だな
ただの人間には興味ありません、的な?
ふむ。只のおっさんには、より一層興味がない、と?
なんかグダグダしてきたんで、この話は終了!
さて、1から9あるいは1から81の中からランダムに数を選べる件は一応、納得してもらえたと思うので、話を進めるが
実は、先程説明した数独/ナンプレの問題候補作成方法には、大きな欠点がある
えっ。後でソルバーでチェックするから候補は雑な作りでいいんでしょ? まあ、適当に数字を散らしただけって感じだけど一応、初期配置みたいのが出来そうじゃん
一言で言えば雑過ぎ
何、その微妙な程度問題!
もう少し具体的に言うと、表出数字の範囲内だけで制約条件的なルールに違反する危険性が極めて高い
表出数字がルール違反とな?
先程示した方法は、制約条件のことなど全く考えず、盤面ルールだけを考慮してランダムに数字を詰めていくのでな。例えばどこかのマスに適当な数字を嵌めたとき、同じ行、列またはブロックにその数字と同じ数字が既にある状況がありえる
こういった表出数字間の制約条件違反が1カ所でもあれば、その問題候補は解なしになってしまう。で、ランダムに二十数カ所も数字を詰めると、どこかしらで違反が発生する確率が非常に高い
要するに先述の雑過ぎる方法では、作った問題候補の大半が解なしとなり、解がある候補は滅多に得られない。そういった候補をソルバーに入れても空振りだらけで、非効率の極み
駄目駄目じゃん!
そうなんだが、ちょっとした工夫で状況がかなり改善される
むむ?
工夫の一例だが、マスに数字を入れる都度、その数字が既に記入済の数字とバッティングするかどうかチェックする。具体的には、記入マスと同じ行、列、ブロックにある全ての他マスについて、今まさに記入しようとしている数字が既に記入済かどうか調べる。このチェック処理は簡単なんで、あまり手間がかからない
で、支障がなければ次の数字に進むが、重複数字だったときは、それ以外の数字をランダム生成して差し替える。1から9までのどの数字でも重複になる不幸なマスに遭遇したらどうするか、といった細かい話はあるが、今回はその辺の説明は割愛する
このようにちょっとしたひねりを加えるだけで、解のある候補が得られる確率がかなり高くなったりするんだな、これが。ざっくりいえば、完全ランダムの『雑過ぎ』候補ではなく、最低限の簡易チェックを混ぜた『多少はマシ』候補にしただけで、結構空振りが減るってこと
『雑過ぎ』とか『多少はマシ』とかアバウト過ぎで謎だけど……「わけわかんないからもっとkwsk」とか言うと益々面倒な話になりそうだから、この辺にしとくか
なお、今回は数独/ナンプレの例だったが。パズル種別が違えば、完全ランダム候補の作り方も効率を高めるひねりかたも違ってくる。数独/ナンプレのやり方だけ知っていれば万能、というわけではないんで要注意
注: パズル種別によっては、問題候補をいきなりランダムに作るのではなく、全部の記入箇所が埋まった最終解答をランダムに作ってから、情報を削除して問題候補を作る方が良い場合、などもあるとか。こういった解答先行方式では、情報を削除しても解の存在は保証されることが多いのですが、情報削除により別解が生じる危険性が残るため、結局のところソルバーによるチェックは必要となります
世の中、そこまで甘くはないってことか
具体的な動機3. パズルの難易度などを知りたい
さて、ソルバーが出来たら、それをもっと凝った作りにしてパズル問題の『難易度判定』を行う方向もあるな
難易度判定とな? それってきっと、パズル問題が初級、中級、上級、みたいな区別のことだよね? 雑誌だと大抵、初級のから順に出てくるよね。ひたすらパズル問題ばっかし載ってる単行本みたいのだと、初級問題集、みたいに冊子がわかれてたり
左様。なお、各問題について、初級者なら解くまで10分、中級者なら5分、のように予想解答時間を付けている場合もあったが
そゆのもあるんだ
うむ。ちなみに、難易度判定、より一般的には何らかの評価尺度を付ける者は、人間にしろコンピューターにしろ『グレーダー』と呼んだりする。で、コンピューターでやる点を強調したければ、『自動』を付けて『自動グレーダー』てな感じ
むむむのむ。『ソルバー』、『ジェネレーター』に続いて『グレーダー』なんていう謎のカタカナ用語まで使うとは……絶許!
グレード (grade) は等級や成績、学年等を意味する英語の名詞だが、『等級や成績を付ける』という意味の動詞としても使われる。で、例によってグレーダー (grader) は『等級や成績を付ける者』となる
注: 『グレーダー』という片仮名外来語は、現状では『土を均す建設土木機械』の意味で使われるのが一般的なようです。英単語 grade には『土を均す』的な意味もあるため、そちらから来ている模様。一方、パズルの難易度評価は、数独/ナンプレではある程度進んでいるため、熟語 sudoku grader はそこそこ使われるようになってきているものの。それ以外のパズルについては xxx grader といった使い方は、まだあまり見つかりません
だ・か・ら、英語の意味を説明されてもウザさは変わらないとあれほd
辛抱たまらん!
茶番はこの辺にして、グレーダーの件だ。単にグレーダーと言うと、人間がやるのかコンピューターなのか分からんし、どんな評価尺度についてのグレードを付けるのかも分からん。なんで以下では、単にグレーダーと言ったら、パズル等の難易度を付ける自動グレーダーを指すこととしたい
ふむ。で、ここで言う難易度とは『人間が解いたときに感じる』難易度を意味するので、グレーダー開発ではその点が面倒臭い
なんか『人間が解いたとき』を強調してるけど、コンピューターで解くときと何か違うん?
良い質問だ
フッ、当然
実は人間とコンピューターとでは、得意分野が違う面が多々ある
そうなんだ
人間の行う知的処理の中には、どんな作業ステップをどんな順番で処理しているのか自分ではっきり認識できているタイプがある。形式知というか。既に言及した会計処理などだな
こういうのはコンピュータープログラムで摸倣しやすいので、コンピューターでも容易に実現できる。そうなれば、今日のコンピューターは人間の1億倍以上の速度で処理を遂行するんで、圧倒的にコンピューターが有利だ
人間の一億倍! コンピューターの計算ってそんなに速いんだ
注: 最新の Intel プロセッサー等は1億倍より更に速いようですね
例えば机の上にリンゴが一つ置いてあったとする。人間がこれを見ると瞬時に直感的にリンゴだと分かるが、その過程は無意識的で、認識処理過程を自分で全く説明できない。大脳生理学者等が研究を進めているが、脳内でどんな認識処理が行われているのか、今日でも部分的にしか解明できていないはず
確かに『見れば分かるだろ』としか言いようがないけど
まっ、とあるインターネット情報(www)によると、リンゴを見てるのにバナナと言っちゃう頭の悪い人もいるらしいけどね(www)
むむっ。わしの説明が暴走気味なときなど、偶にお前さんが呆けた表情で『ばなな』と言っとったが⸺
その元ネタはそれか?!
ぎくっとな
まあいい。画像認識等、人間が自分の知能を自分で説明できない処理は、コンピュータープログラムで単純に摸倣できないから、そのままではコンピューター処理に置き換えられない。つまり、コンピューターには難しい分野ってこと
そゆことか
なお、画像認識については、コンピュータービジョン (computer vision) という研究分野があり、コンピューターで画像認識する方法を追求している
それって、コンピューターには難しいって言ったばっかし!
左様。人間の画像認識方法が殆ど分かっていないのだから、他のアプローチで何とか摸倣できないかを模索していくわけで。努力と根性というか、血と汗と涙、試行錯誤と閃きの積み重ね、的な分野だ
人間のやり方がわかってないのに、他のやり方で同じようなことをしようとするなんて、鬼じゃん
そのとおりだが、長年に渡る研究の結果、かなり高度な画像認識ができるようになってきている。形式知的な、つまりは説明可能な処理方法で人間が無意識に行う暗黙知過程を摸倣できるのは、驚くべき成果と言えるだろう
そりゃすごいね
ちなみに、人間を含む生物の脳内にある神経細胞網の動作を摸倣する人工ニューラルネットワークというアプローチにおいて、21世紀に入ってから技術的なブレークスルーがあり、急速に研究実用化活動が展開している。深層学習とか呼ばれているやつだ。画像認識分野でも、この手段を用いると人間の能力に肉薄する結果が得られる場合がある模様
む?
反面、このアプローチには、『今日のコンピューターパワーを以てしても計算が重い』とか『知能の本質が超多数のシナプス重み値に拡散していて賢さの説明が困難』といった課題も残っている
画像認識とかの話はもういいっちゅうねん!
そうか
知りたいのは、パズルを解くのはどっちのタイプか、ってことでしょ!
うむ。パズル雑誌等にあるロジック系はほぼ全て完全情報パズルだから、基本的には人間が解く手順を自分で説明できるタイプだな。だからこそ、解き方を他の人に解説する動画等が多々あるわけで。つまりは、コンピュータープログラムで摸倣しやすい類い
注: 数独/ナンプレはゴリゴリに理詰めで解く感じですが。完全情報パズルでもナンバーリンクのように『閃きも大切』と言われるものもあります。ので、パズル雑誌等にあるロジック系パズルの全てが手順説明可能、とは断言できないかも……
だとすると、自動ソルバーがやってることは、人間の解き方と同じなんでしょ? なら、『人間が解いたときの』難易度もついでにわかるっしょ
何? その古語みたいな言い方!
(☝古語は言い過ぎ?)
これは失礼をば
古語はどうでもいいけど、何で駄目なん?
多様な問題の解き方について、より効率的な手順/方法を追求するアルゴリズム論という研究分野があってな。70年を超える研究の歴史の中で、人間が素朴に思いつく解き方手順よりずっと効率的な手順が色々発明されてきておる
逆に言えば、人間が処理手順を明確に自己認識できるようなタイプであっても、アルゴリズム論の成果を多用すると、人間の素朴な手順とはかなり違ってくる、ってことだ
そんなんあるんだ。でも全然イメージ湧かないんで、わかりやすい例プリーズ
アルゴリズム論の発端になった処理の一つは、恐らくソート (sort) だな
またもやカタカナ外来語! いじめ? いじめなの?!
そのような意図はありますん
どっち?!
……ソートとは、乱雑に並んでいる伝票等を所定の順序で並べ替える処理だ。例えば伝票番号順、日付順、取引先コード順、等々
外来語とか使って難しい作業かと思ったら、めっちゃ簡単なお仕事じゃん
そう、何をやるかは単純だ。しかし、並び替える伝票等の数が多くなってくると、工夫無しでは次第に辛いことになる
お前さんだったら、どんなやり方をする?
注: 伝票番号が1から200だったら比較的楽なのですが。もしも伝票番号が5桁で範囲も限定されていないとすると。例えば、32042, 96848, 63722, 14595, 13712, 89939, 67626, 03970……
そんなん急に言われても……えっと……
ふむ?
伝票を通しで見て、一番小さいのを選んで……それから、えっと……
なるほど。まず、伝票の束を全部見て一番小さいものを選ぶ。次に、残りの伝票の束から一番小さいものを選ぶと、それが二番目となる。以下同様、って感じか
そうそう、それをいいたかったんだよ。先回りして言っちゃダメ〜
ソートしろと言われて素朴に思い付くやり方は、まあ大抵そんな感じだろうな。だがしかし、そのやり方だと、枚数が多くなるにつれ次第に思い切り時間がかかるようになる
2つの伝票を比較して必要に応じて持ち替えたり差し替えたりする作業に平均1秒かかるとしよう。今のやり方で200枚の伝票をきちんと並び替える作業は、5時間では終わらないだろうな
ばんなそかな! たかが200枚を順に並び替えるのに5時間以上とか!
今は詳しい説明は省くが、納得できなければ後でじっくり考えて欲しい。まずは一番小さい最初の一枚を選び出すのに何分かかるか、とかな
おっちゃんが5時間以上っていうんなら、きっとそうなんでしょ。ってことで、話を進めましょ〜❤
……人間がやって手間取る手順は、同様にプログラム化するとコンピューターでも手間取るわけで。コンピューターが出始めのころは、『ソートってのは単純な割に意外に手間取る処理』的に思われていたようだが
アルゴリズム論黎明期の鋭い先人たちが、バケットソート (bucket sort)、マージソート (merge sort)、クイックソート (quicksort)、ヒープソート (heap sort) といった効率的な処理手順を発明し、効率がかなり改善された
例えばマージソートは安定して高効率な方法で、手順も比較的分かりやすいから、ちょっと練習すれば人間も同様な手順で作業効率を高めることができる
マージソートとやらの修行は遠慮しとくけど、それでやると200枚の並び替えはどの位の時間になるん?
劇的に速くなるわけではないが、30分以下にはなるだろうな。時間の比率では約10分の1というか、逆に10倍の高速化というか
注: 広々とした机が使えるなら、バケットソートの方がよいかも?
確かに劇的じゃないかもだけど、それなりに速くはなってるね
とはいえ、200枚の並び替えに30分とか、やっぱり遅くて駄目駄目っぽい
まあ、あれだ。ソートのようなルーチンワークは、人間の手作業ではなく一億倍以上速いコンピューターに押し付けるのが一番。伝票は作成時から電子データ化しておき、以降のワンパターン処理はコンピューターにやらせる、ってのが合理化された事務現場の在り方と言えよう
結局はそれかい!
さて、今の例では10倍程度の高速化だったが
(☝上記例示の中で説明した状況の場合です)
他の処理でデータ量も多い場合など、状況によっては、更に激しく高速化できることもある。素朴な手順で3分かかっていたコンピューター処理について、アルゴリズム論の成果を活用し洗練された手順に変えたら1秒以下、なんてこともままある。なお、処理手順を変えただけで、コンピューター自体を高性能版に変えたわけではない
そんなに速くなるなんて!
カプヌも3分じゃなくて1秒になればいいのに
カプヌ? とは何ぞや?
え〜っ。お湯をかけて3分のアレを知らないなんて……
参考または蛇足: カップ麺の待ち時間は、袋入りインスタント麺の嚆矢『チキンラーメン』の時点から『3分』の伝統があるようですね。この時間設定は物理化学的な理由だけではない雰囲気です。例えば、3分以上待つとイライラする人が出てくるとか、その限界の3分『おあずけ』状態になることでむしろ食欲が増す、といった消費者心理的な考察もあるとか。より水を吸った麺が好きな人は、3分⇒5分⇒7分⇒10分のように時間をかけて自分の嗜好を追求、といった個人差による独自調整もありで
……ひょっとしてカップヌードルのことか?
そうに決まってるじゃん
麺を熱湯でふやかすのは物理現象ゆえ、アルゴリズム論とは別な意味で高速化は容易ではないはず
圧力鍋的に加圧して熱湯の温度を上げる? には容器から出して色々セッティングが必要そうだし。加えて、徐々に減圧冷却しないと激しく沸騰したりして危険そうだし
電子レンジ利用? は容器が危ないだろうし。耐熱容器等に中身を移し替えて電子レンジ? でも1秒は無理か
警告: カップ麺の容器にお湯を注いだ後、そのまま電子レンジに入れて加熱するのは非常に危険です。良い子は絶対に真似しないようにしましょう。詳しくは『カップ麺 電子レンジ』等でインターネット検索を是非
麺の加工方法等を研究して短縮? できるものなら、カップ麺の長い歴史からして、メーカーがとっくに発売しとるだろうし……
参考または蛇足: 現実の商品では、とにかく早く食べたい人向けの55秒商品が出現している模様。一方、待ってもいいから旨い麺を求める人向けの5分、7分物も色々発売されるなど、二極化が進んでいるとの意見も。というわけで、技術的には55秒までは実用化しているようですが、やはり1秒は厳しい? 詳しくは『カップ麺 3分 短縮 研究』等でインターネット検索を是非
んなことマジに考えなくていいから!
(☝上記脱線中で惰性慣性親父のカップ麺に関する考察が暴走気味だったので)
自動ソルバーの解き方手順は人間のと同じか違うか、って話でしょ!
そうだったな。正直すまんかった
で、自動ソルバーの解き方手順だが、対象パズルによる違いがあるので、ここでは研究が進んでいる数独/ナンプレの場合で考えるとしよう
数独ソルバーの手順として定番化しているのは恐らく、数独ルールを厳密被覆 (exact cover) 問題として定式化した後、同問題を効率的に解くクヌース (D. Knuth) 先生発案のアルゴリズムX (Algorithm X) ダンシングリンク風味 (with dancing links) を適用する方法だな
☝①英語だとほぼ『exact cover』一択なのですが、日本語用語はばらつきがあるようで、『完全被覆』と呼ぶ専門家もいる模様。②ダンシングリンク『風味』の用語表現は、惰性慣性親父による独自の適当な言い回しです
何、そのわけわからん方法! ばなな顔寸前!
今後も寸止め希望
いや無理!
即答かい?!
ばなな顔はどうでもいいでしょ!
うむ。詳しい説明は省くが、先述のアルゴリズムX云々は凝り凝りな方法なんで、『人間ならそうはやらんやろ』というか『人間が律儀に真似するのは辛すぎ』な内容。要するに、人間の解き方とは似ても似つかないレベル
人類には早すぎるやり方、的な?
まあな。そんなわけで、数独自動ソルバーが答えを出すまでの手間を計測しても、人間が解くときの難易度とは言いがたい。数独以外のパズルでも、状況は概ね似たようなものだ
それはまあ、わかったことにするけど。なら、その、何だっけ? 難易度を判定するヤツ……
グレーダーだな
そうそう。そのグレーダーってのは、どうやって作るんかいな?
まず、パズルの初期配置から簡単に計算できる数値を使って難易度を粗く見積もる方法がある。数独/ナンプレは難易度判定についても研究が進んでいるので、このパズルを例にとると⸺
①表出数字の数⸺裏を返せば初期状態での空きマスの数⸺を用いる流儀がある。プレイヤーが答えを書き込まなければならない空きマスの数が多いほど難しい問題なのではないか、というアバウトな考え方だな
②もう少し凝った方法としては、各空きマスについて、表出数字と数独ルールから直接的に除外できる数字を除いて残った候補数字の数をカウントする。それぞれの空きマスについて、初期の選択候補数字セットが多いか少ないかって感じだな。これらを一定の公式で計算して『数独エントロピー』と呼ばれる数値を算出し、これにより難易度を見積もる流儀がある。空きマスに入る候補数字が多いほど、1つに絞るまでの手間が多くて難しいだろう、との考え方だ
②の細かいとこは謎だけど、どっちも考え方の気持ちはわかるような。けど、初期配置だけ見て適当に計算してるだけで、全然解いてないじゃん。そんなんで難易度を決められるのかなぁ?
雑誌等から初級中級といった難易度区分付きの数独/ナンプレ問題を多数収集し、それらの空きマス数や数独エントロピーを計算して、雑誌社が付けた難易度区分との相関を統計的に調べた報告があるな
結論としては、『それなりに当たる』ってところ。空きマス数より数独エントロピーの方が計算がちと大変だが、雑誌社による難易度との相関は高くなるようだ
それなりに?
もっとも、空きマスが多い割に妙に簡単な問題やその逆パターンなど、これらの値と実際に解いてみた難易度とのずれが大きい例外も散見される。あくまでも『簡単にラフ見積もり』したい場合用だな
まあ、そんなもんか。てゆっか、なしてそんなアバウトなもんを考えるんだろ?
簡単な計算でそこそこ当たる指標が得られるなら楽ではないか。だもんで、数独/ナンプレ以外のパズルでも同様に、簡単な計算で難易度をざっくり見積もれそうな方法が考案されとる雰囲気。『概算見積もり』グレーダー的な
数独/ナンプレの場合は、精度の高い見積もりにはなっていない感触だが
あっそ。でも、もっときちんと難易度を判定するには、やっぱり解いてみるしかないんじゃないの?
そのようだな。解いて判定するからソルバー的グレーダーというか
ただし、単なるソルバーなら、専門家が発明したアルゴリズムX+ダンシングリンク等の飛び道具を好きなだけ使えるのに対し、グレーダーは『人間プレイヤーが感じる』難易度を求めるものゆえ、『人間の解き方』を摸倣しなければならない
数独/ナンプレのように人間向けの解き方パターンがかなり多いパズルも結構あるんで、それらを全て組み込むとなると開発は大変になりがち
つまり、グレーダー作るのは、ソルバー作るより難儀、ってことね?
うむ。加えて、プレイヤーの個性もあるし
例によって世界的に知名度が高く研究も多い数独/ナンプレを題材にすると、既に数十の解き方が知られている。が、多くのプレイヤーはそれらの一部しか知らないので、知っている範囲が違えば当然、解き筋も違ってくるだろう
また、Aさんは解き方1は得意だが解き方2は苦手、Bさんはその逆というように、個々の解き方についても人による得手不得手がありえる
こういった人による違いがあるため、万人に共通的な難易度は恐らく定義できない。『平均的な難易度』あるいは更に『プレイヤー熟練度別の難易度』といった工夫が必要になる点も面倒だな
へ〜。ナンプレの解き方ってそんなに沢山あるんだ
重要なのはそこかい?!
まっ、グレーダーがソルバーより大変そうだって雰囲気は感じたかも。ってことは、まだグレーダーはあんまり作られてないのかな?
パズルの種類による模様
なるほど。じゃ、どんなパズルのは出来てるん?
数独/ナンプレは進んでいる感触。十年以上前に既にかなり凝ったグレーダーを試作開発して評価した云々の論文があり、それ以降も国内外でより完成度の高いグレーダーに関する報告が色々でている
ナンプレは世界的に有名とか言ってたから、やっぱグレーダーも進んでるんだ
そのようだな。一方、数独/ナンプレ以外のパズルだと、取り組み報告がぐっと減ったりするんで、全体的にはまだまだ、とは思うが
ってことは、おっちゃんがめっちゃ頑張れば(www)、今までにないグレーダーが作れるかもね(www)。全く期待しないで待ってま〜す
ソルバーやジェネレーターは色々やってみるつもりだが。数独のは大体出来とるし、それ以外のも幾つか着手しとるし
だがしかし、グレーダーはどこまでいけるか何とも。概算見積もり系は概算のアイデアさえあれば比較的簡単そうだが、本格的なソルバー的グレーダーとなると、人間の解き方をかなり調べなければならないんで
そっか。プログラム作りより、その辺の調査が大変なんだ
うむ。難易度グレーダーの話をしたので、わしが難易度系以上に関心を持っている解き味グレーダーにも言及しておくか
☝『解き味』の詳細は前回記事『趣味数って何?』の段落『趣味数ブログの主な話題』中の『解き味に関する細かすぎて伝わらない(?)話』の箇所を開くと出てきます
解き味って、解いた後の満足度、みたいなのだっけ? 難易度よりもっとアバウトっていうか謎。そういえば、解き方がワンパターンか、とかなんとか
解き方がワンパターン云々は単なる仮説の一つだ。その点の確認も含め、解き味グレーダーについては、グレーダーの作り方以前に、そもそも解き味とは何かをより深く究明する必要がある
現在のところ、そのような取り組み報告は非常に少ない感触だが、今後の展開を期待しつつ、わし自身もちょっとした実験等を試みたい所存
『やりたいからやる』ってんなら、『お好きにどうぞ』だけど
そんなん作ったら誰か嬉しいのかな?
誰か嬉しいのかについては、以下のような考察がある
はて?
前回記事中で述べたとおり、『コンピューターで自動生成されたパズルはパズル作家作品に比べ解き味が悪い』との見解があるわけだが
☝『解き味が悪い』云々の記述は、前回記事『趣味数って何?』の段落『趣味数ブログの主な話題』中に出てきます
関係者が納得できるような結果を出す『使える』自動解き味グレーダーが完成した暁には、この意見が真実かどうか見極められる
それだと研究者は嬉しいかもだけど。そうじゃなければ『ふ〜ん』って感じ
更に、パズル作家が作る問題は100%解き味OK、自動生成された問題は100%解き味NGという『白か黒か』ではないはず。パズル作家の勝率は80%、自動生成の勝率は1%といった『程度の問題』と思われる。であれば⸺
コンピューターは結構な速度で延々と問題を生成し続けるものゆえ、自動解き味グレーダーが使えるなら、それを用いて解き味の良い問題だけ選別すればよい。生成ペースは大分落ちるものの、解き味グッドな問題だけ提出することが可能になるだろうて
☝力任せ探索的といいますか、『下手な鉄砲も数撃ちゃ当たる』からの『量が質を生む』的なアプローチですね。他には、パズル作家の作成過程を形式知化して摸倣するアプローチも考えられますが、どこまで形式知化できるのかが不明確です。特に、パズル作家が解き味の調整をどのように行っているか、となりますと
なるほどね。パズル作家にとっては強力なライバル出現で嫌かもだけど、パズル雑誌社とかは嬉しいのかも?
長くなったので、一旦、この辺で
さて、次の動機だが⸺
待ったぁ!
だ? 藪から棒に
話が長くなってきたんで、休憩を要求するっ!
む。そんなに時間が経ってしまったか。確かに、ソルバーの基本用途とも言える解の存在判定/一意性判定、ソルバーを活用した問題ジェネレーター、ソルバーを改変した難易度グレーダーと、3つも動機を述べたからな。しかも、色々と突っ込みがあって派生的な話もかなり混ぜたし……
30分お仕事したら3時間は休憩しないと!
それは休み過ぎではないかと思うが……。仕方がない。少し休憩するとして、残りの動機については続編とするか
そうして
では皆さん、続編の記事でまたお会いしましょう
まったね〜❤
あっ、そう。この記事へのコメントは、Xのポスト『人はなぜ自動プレイヤーを作りたがるのか』へのリプで是非、お願いしま〜す