迷路をプログラムで作る

(2015.3.31作成)
学生時代に数学か計算機(コンピュータとは言わずに)の授業でモンテカルロシミュレーションについて習いました。詳しい事は何も覚えていませんが、その考え方から迷路が作れそうだと思い立ち、暫く迷路作りのプログラミングに没頭していました。パソコンはまだ影も形も無く、学校にミニコンと呼ばれる小型タンス位の大きさの計算機(FACOM230-25、メモリ24KByte、磁気ドラム500KByte?、磁気ディスク3MByte?、CPU性能は精々PC9801並くらい)が1台あって管理者にプログラム実行を依頼し、少し待って結果が返ってくるという流れ(バッチ処理)で使っていました。管理者の居ない時間外(放課後)では、計算機室に居座って好きなだけ使えることもありました。
言語はFORTRANです。当時は数値計算はFORTRAN(他にはALGOL、PL/1など)、事務計算はCOBOLという時代でした。プログラムはパンチカード(ANK80文字/枚)またはマークシートカード(40文字/枚)で作成、入力します。学生は費用節約のためマークシートカード(再利用可能なので)を使用しました。

授業では、簡単な計算(方程式の解とか数値積分など、いわゆる数値計算)の結果を出す(プログラム作成~結果をプリントで受取る)のにえらく手間暇がかかり、こんな面倒なものは使う気にならないと思っていました。しかし迷路作りに没頭する内、計算機の万能性を実感できるようになり、私の人生(進路)が電気工学(自分の学科)からコンピュータ(ソフトウェア)へ転向する大きな要因になったのでした。

あれから云十年、当時FORTRANで作ったものをc言語に焼直して、何かの連想で思い出した時にちょこっと動かしてみたりします。
単純なロジック(穴掘り式とでも呼ばれるでしょうか?)ですが、千鳥足?で進むモグラの進行方向と横穴増設を乱数と確率変数とで選んで行く仕組みです。その確率変数を少し変えただけで出来具合がガラリと変わってしまいます。学生当時は出来るだけ出口までの行程が長くなるようにと試行錯誤していたのですが、何せプログラムを実行させるまでの手間と計算速度の遅さで試行回数も限られていました。しかし現代のPCは性能が数百倍になり、プログラム実行も一瞬で結果が出てきます。それでも乱数と確率変数頼みなので、ダメな迷路も出来上がります。
長い行程のものは一見難しそうでも迷路解読の得意な人(そうゆう人がいるのなら)は、ササッと解いてしまうのかも知れません。ルービックキューブの得意な人がいるように。行程の長さでいうなら、極限は全てのマス目を一筆書きの様に通るものになるでしょう。しかしその場合辿るのは時間がかかるとしても、袋小路が無いので迷いがなく面白味(難しさ)は全くありません。ではどの位の長さがベストなのか、迷路の難しさを数値化するモデルとか手法はあるのでしょうか?そうなら客観的に傑作(難しい)迷路が出来たと喜べるのですが。世の中広いので、そうゆう研究をされてる方がいるかも知れません。
数学素人の私では、見た目の判断しかありません。しかし平均的には年を取ると解読に時間がかかるでしょうから、或る意味老化の自己判定に使えるかもしれません。

皆さんも自分で作って(迷路に限らず)遊んでは如何でしょうか?
(罫線文字で線引きしてあります。)