迷路で寄り道してみる

迷 路で寄 り道 してみ る
藤 野稔寛
1.入り口
私は、20年以 上前に盲 学校 に勤めて いたこ とがあり 、その とき、図形を点 訳するソフ ト「エ
ーデ ル 」 を開 発 した 。 エー デ ルは 発 展を 続 け 、 現在 で は点 図や 図 入り 点 訳 本を 作成 するため に
無く て は なら な いツ ー ルと し て普 及 して い る 。 そし て 、点 図と い うも の が 広く 提供 されるよ う
にな っ た が、 わ かり や すい 点 図の 作 成方 法 を 標 準化 す るこ とと 共 に、 点 字 使用 者自 身の点図 触
読能 力 を いか に 育成 す るか と いう こ とも ひ と つ の課 題 とな って い る。 そ こ で、 私は 、点図に よ
る迷 路 を 作成 ・ 提供 し て、 点 字使 用 者が 迷 路 で 遊ぶ こ とに より 点 図に 慣 れ 親し んで もらうこ と
ができな いかと考 えた。
実 は 、 エー デ ルを 開 発し た 初期 の 頃、 点 図 迷 路を 自 動作 成す る 機能 を お まけ とし て付けて い
た。 が 、 十分 満 足の い くも の でな か った の で 、 今回 は この 完成 度 を上 げ る こと を考 えた。具 体
的に は 、 道幅 だ けで な く、 全 体の サ イズ も 変 更 でき る よう にす る など で あ る。 こう して改良 の
構想を練 っている うち、迷路の 難易度を 設定で きる ようにし たいと思う ようにな った。しか し、
迷路の難 易度はい ったい何 によ って決ま るのだ ろう か?
この疑 問につい て考える ため にも、と にかく 迷路自動 作成 ソフト、名付けて「迷作」を作り、
シミュレ ーション してみる こと にした。 以下、 迷路 で寄 り道 してみた 顛末を述べ る。
2.出発
ここで 扱う迷路 は、次の よう なもので ある。
(1) 全 体の形は 長方形で あり 、縦に m 個、 横に n個 の格 子点が並 んでいる。
(2) 隣 り合う格 子点をつ なぐ ように道 があり 、左 上角 と右 下角の格 子点を入り 口・出口
と す る 最 短 の 経 路 ( 以 後 、「 解 で あ る 道 」、 ま た は 、「 解 と な る 道 」 と い う 。) が ひ と つ
だ けある。
(3) す べての道 はひとつ に繋 がってお り、す べて の格 子点 へ行くこ とができる 。
な お 、 この よ うな 迷 路を 描 く場 合 、壁 を 描 く 方法 と 、道 自体 を 描く 方 法 とが ある 。これら は
本質 的 に 同等 で ある が 、こ れ を点 図 迷路 に し て 触読 す ると きに は 大き な 違 いが ある 。点図迷 路
の場 合 、 おそ ら く、 壁 では な く道 自 体を 凸 点 の 列で 描 く方 が、 他 の点 図 と の共 通性 があり、 適
切 な の で あ ろ う 。 今 回 制 作 し た 「 迷 作 」 で は 、 相 互 に 変 換 で き る よ う に し た 。( 図 1 、 図 2 )
迷 路 を 自動 生 成す る アル ゴ リズ ム とし て す ぐ 思い 付 くの は、 迷 路を 作 る 壁を 描く 以下のよ う
な方 法 で ある 。 まず 、 長方 形 の壁 を 描き 、 入 り 口と 出 口を 開け る 。次 に 、 壁の 任意 の位置か ら
内側 へ 壁 を適 当 に描 く 。こ の とき 、 その 付 加 し た壁 が 別の 壁に 着 くこ と は ない よう にする。 後
はこ の よ うな 壁 の付 加 を繰 り 返す が 、付 加 す る 位置 は 、初 めの 長 方形 の 壁 だけ でな く、後か ら
付加 さ れ た壁 の 上で も よい 。 これ で 壁に よ る 迷 路が 出 来上 がる 。 しか し 、 これ をパ ソコンで 実
現す る と き、 壁 を付 加 する 場 所や 向 きは ラ ン ダ ムに 決 めら れる の で、 出 来 上が る迷 路がどの よ
うなもの になるか 、まして 、そ の難易度 をコン トロ ール する ことはで きそうにな い。
迷 路 の 難易 度 が何 に よっ て 決ま る のか は し ば らく 措 くと して 、 難易 度 を 調節 する ためには 、
とに か く 解と な る道 を まず 描 くこ と が必 要 で あ るよ う に思 えた 。 では 、 長 方形 の形 に並んだ 格
図1
道によ る迷 路
図2
壁に よる迷路
子点 の 隣 どう し を結 び なが ら 左上 角 から 右 下 角 まで 一 本の 折れ 線 を描 く ア ルゴ リズ ムとして 、
どの よ う なも の が考 え られ る であ ろ うか 。 そ れ は、 左 上角 から ラ ンダ ム に 方向 を変 えながら 次
々と 格 子 点を つ なげ て いけ ば 良い と いう 訳 に は いか な い。 必ず 右 下角 の 終 点に 着け るように す
るために は、途中 で行 き詰まっ てしまう ことが ない ようにす る必要があ るからで ある。そこ で、
私は 、 ま ず左 上 角と 右 下角 を 最短 距 離で 結 ぶ 道 (図 3 )を 描き 、 これ を 適 当に 曲げ 伸ばすこ と
図3
最短 経路
図4
解 となる道
で解 と な る道 ( 図4 ) を決 め れば 良 いと 考 え た 。こ れ に適 当に 枝 道を 付 加 する こと で、壁で は
なく道自 体で描く 迷路が出 来上 がる。
こう考 えたのは 、解で ある道が くねくね と長くなっ ていれば 難しい迷 路になるの ではない か、
従っ て 、 解で あ る道 の 長さ で 難易 度 が調 節 で き るの で はな いか 、 とい う 感 じが 何と なくあっ た
から で あ る。 し かし 、 これ が 誤り で ある こ と は 明ら か であ る。 な ぜな ら 、 解と なる 道を長く す
れば す る ほど 枝 道は 少 なく な り、 極 端な 場 合 、 枝道 が 無く なっ て しま え ば 、解 であ る道は非 常
にく ね く ねと し てい る かも し れな い が、 迷 う 必 要の な い一 本道 に なる か ら であ る。 迷わせる た
めには道 の分岐が 必ず必要 であ る。
と に か くこ の アル ゴ リズ ム を実 現 して み る こ とに し た。 まず 、 左上 角 か ら右 下角 へ最短距 離
の道 を 描 くこ と は簡 単 で、 左 上角 か ら、 進 め る 範囲 で 右、 また は 、下 方 向 にの み格 子点を繋 げ
てい け ば 良い 。 この と き、 縦 に m個 、 横に n 個の 格 子 点を 繋 ぐ ので 、 右へ 進むか 、下へ進 む
かの 確 率 を n : m の 比 に 配分 す るの が 良い で あろ う 。 もち ろ ん 、右 端 に着 いた場 合は次は 下
へ、 下 端 に着 い た場 合 は次 は 右へ 進 むし か な い 。次 に 、こ れを 曲 げ伸 ば す には どう すればい い
だろうか 。私は次 のふたつ の操 作をおこ なうこ とに した 。
操作1
:
隣接 す る4 つ の格 子 点か ら な る 正方 形 A B CD にお い て、 2つの 点、例え ば
A と B が 解と な る道 上 の隣 り 合 った 格 子 点で あり 、 C と D が 道上にな い
場 合に、道 -A-B- を 道 - A-D- C-B- にす ることで道 を長くす る。
道の 「 長さ 」 を道 が 通過 す る 格 子点 の 数で 定義 す ると 、 こ の操 作に よって道 の
長 さは 2 だけ 増える。
操作2
:
隣接 す る4 つ の格 子 点か ら な る 正方 形 A B CD にお い て、 道が、 例えば
-A - B- C - と繋 が っており 、D が道上に ない場合、 道 -A-B- C-
を 道 - A-D- C- に 換える 。
3.寄り道
こ こ で ちょ っ と寄 り 道し 、 上記 の 2つ の 操 作 をラ ン ダム に繰 り 返し て 、 初め 最短 距離だっ た
道 を 最 長 の 道 ま で 変 形 で き る か ど う か 試 し て み た 。「 最 長 の 道 」 と い う の は 、 解 で あ る 道 が 長
方形いっ ぱいに伸 びきって いる ものであ る。先述した、迷う必 要のない一 本道であ る。
(図5)
ただ し 、 m、 n 共に 偶 数の 場 合 は、 格 子点の総 数 m n が 偶数であ るのに対 して、最短 距離
m+n-1 が奇数であり、従って、これを 2 ずつ伸ばした道の長さも奇数であるため、上
記のふた つの操作 で作った 最長 の道では 格子点 をひ とつ 残す ことにな る。(図6)
図5
最長 の道( m=30 ,n=1 5)
(すべての格子点を通過している)
図6
最 長の道( m=30, n=16 )
(通過していない格子点が1ヶ所ある)
それに しても、 上記の操 作に 依存しな い、次 の命 題は 真だ ろうか?
『縦に m個、横に n個の格子点を並べる。m、n が共に偶数のとき、左上角から右下角
ま で 、す べ ての 格 子点 を 通る 一 本道 は 描 け ない 。 ただ し、 道 は水 平 、 また は、 垂直方向 に
隣り 合う格子 点を繋い でい くものと する。』
これ は 証 明で き る。 格 子点 の 間隔 を 1 とす る 。左 上 角 の格 子 点 から 道 を描 き進む ことを考 え
ると 、 道 順が ど うで あ れ、 右 方向 に は結 果 的 に n - 1 だけ 進 ま なけ れ ばな らない 。途中で 左
方向へ戻ることが a回あるとすると、その分右方向へ戻らなければならないので、道の水平
方向 の 距 離の 合 計は n -1 + 2 a で ある。 同様に、 垂直方向 の距離の合 計は m-1+ 2b
と表 せ る ので 、 道の 距 離は こ れら を 足し て m +n + 2( a +b - 1 ) とな る。よ って、こ の
道が 通 過 する 格 子点 の 数は m + n+ 2 (a + b- 1 )+ 1 で あ り、 奇 数で ある。 しかし、 格
子点の総 数 mn は偶数で ある ので、す べての 格子 点を 通る 一本道は 描けない。
ま た 、 縦、 横 の少 な くと も 一方 が 奇数 の 場 合 にす べ ての 格子 点 を通 過 す る一 本道 が描ける こ
とも 、 簡 単に 示 すこ と がで き る。 そ のよ う な 道 の具 体 的な 描き 方 があ る か らで ある 。縦方向 の
格子 点 数 m が 奇 数で あ る とき 、 まず 右 方向 に 端ま で 進 み、 下 へ ひと つ 折れ て、今 度は左へ 端
まで 進 む 。こ う した 横 の大 き な蛇 行 を繰 り 返 せ ば、 す べて の格 子 点を 通 過 して 右下 角へ到達 で
きる。横 方向の格 子点数 n が 奇数の場 合、同 様に 縦方 向の 大きな蛇 行を繰り返 せばよい 。
パ ソ コ ンに よ るシ ミ ュレ ー ショ ン では 、 最 初 に最 短 距離 の道 を 描き 、 こ れに 操作 1、操作 2
をランダ ムに繰り 返して最 長の 道を描こ うとし た。こ れでいろ いろな経 路が描ける のである が、
格子 点 を 2つ 以 上残 す こと も あっ た 。そ の 様 子 を見 て いる と、 い ろい ろ な 疑問 が生 じてきた 。
とくに、 2つの操 作をラン ダム にではな く考え なが ら実 行す るとどう なるのだろ うか?
[ 1 ] 最 短 距 離 で 結 ぶ 道 順 は m-1+n-1 C m-1 通 り あ る が 、 で は 、 最 長 の 道 順 は 何 通 り あ る
の だろうか ?
[ 2 ] いず れ の最 短 距離 の 道順 か らス タ ー ト して も 、ど の最 長 距離 の 道 順へ も、 上記の2 つ
の 操作だけ で必ず伸 長・ 変形でき るのだ ろう か?
た だし、いず れの最短距 離の道順 も、
操 作2 に よっ て 、最 も 外 側の み を通 る L字 型 の 道に 変 形 でき る ので 、スタ ート時点 で
の 最短距離 の道順は 、こ の L字型 に限 ることが できる。
[ 3 ] もし 、 2. が 不可 の 場合 、 操作 1 と 操作 2 だ けで は 道 の長 さ は伸 びる一 方なので 、
操 作1 の 逆の操 作も加え るとどう なの だろうか ?
すべて、 私には解 けない疑 問で ある。寄 り道は 得て して 行き 止まるも のなのであ ろうか?
4.本道
さ て 、 寄り 道 が長 く なり 過 ぎた 。 難易 度 を 調 節し て 迷路 を作 る とい う 出 口を 目指 して本道 に
戻ろ う 。 先述 の よう に して 、 解と な る道 の 長 さ を調 節 でき るよ う にな っ た ので 、後 はこれに 枝
道を 付 け れば 迷 路が 完 成す る 。こ の とき 、 も ち ろん 伸 ばし た先 を すで に 描 かれ てい る道に付 け
ては な ら ない 。 この 単 位長 さ の枝 道 の付 加 を ラ ンダ ム に繰 り返 し ても 良 い が、 伸ば した先か ら
さら に 伸 ばせ る とき は 伸ば す こと も ある よ う に して 、 枝道 を少 し 長く す る よう に工 夫した。 ど
の方向に 伸ばすか は偶然性 に任 せた。
こ う し て迷 路 を完 成 させ ら れる よ うに な っ た ので 、 いよ いよ 迷 路の 難 易 度に つい て改めて 考
えた。
初 め 、 解と な る道 が 長く て くね く ねし て い る 方が 難 しい 、し か し、 長 す ぎる と枝 道が少な く
なっ て し まう の で、 逆 に易 し くな る だろ う と 考 え、 解 とな る道 の 長さ を x とする と、難し さ
は x( m n- x ) で 与 え られ る ので は ない か 、と 考 え た。 し か し、 x と
mn-x の積 で
はな く 、 和 x + mn - x= m n かも し れず 、 そう す る と、 結 局 、格 子 点の 総数、 つまり、 全
体の サ イ ズで 決 まる と いう こ とに な る。 こ れ は ある 意 味当 然で 、 頷け な い 答え では ないが、 難
易度が全 体のサイ ズだけで 決ま るもので ないこ とは 、最長の道 の存在を 考えれば明 らかであ る。
次 に 、 分岐 点 の数 が 多い と 難し く なる の で は ない か 、と 考え た 。そ こ で 、解 とな る道の長 さ
x を変 え なが ら 、ひ と つの x
につ い て1 0 回ず つ 迷 路を 作 り 、そ の 分岐 点の数 を数える シ
ミュレーションをおこなった。その結果を表1に示す。三叉路は1個、四叉路は 2個と数え
た。m=20、n=15 である。なお、分岐した枝道の先には必ず行き止まりがあるので、
分岐 点 を 数え る こと は 行き 止 まり を 数え る こ と でも あ り、 ここ で 数え た 分 岐点 の数 は行き止 ま
りの数よ り 1 多 いだけで ある 。
x
1
2
3
4
5
6
7
8
9
10
平均
34
90
86
93
91
80
89
90
86
85
86
7 9.8
58
86
90
89
78
78
81
91
83
87
80
8 4.3
82
79
78
77
77
77
82
80
77
77
88
7 9.2
10 4
76
71
70
82
75
76
73
70
74
76
7 4.3
12 8
59
65
66
63
64
64
69
63
62
66
5 7.8
15 2
53
58
59
55
57
60
49
59
57
57
5 6.4
回
表1
解となる 道の 長さを変 えて、 分岐 点の 数を 10回ず つ数えた。
も し 難 易度 が x( m n- x ) で与 え られ る とす る と 、こ の 値 は x =m n /2 のとき最 大
とな る 。 この 値 は今 2 0× 1 5 /2 = 15 0 なの で 、 上の 表 に よる と 、分 岐点の 数はかな り
少な く な るだ ろ う。 従 って 、 難易 度 が x( m n- x ) で与 え ら れる と いう ことは なさそう で
ある。
分 岐 点 の数 は 、x が 大き く な ると だ んだ ん 減少 し てい っ て、 最 後 に は 0 (m、 n共に偶 数
のときは 1)になることが明らかであるが、上の表で x=58 のとき最大になっているこ
とが注目される。m+n-1=34 が解である道の長さの最小値であるが、解である道の長
さが こ れ より や や長 い とこ ろ が、 調 べな け れ ば なら な い分 岐点 ・ 枝道 が 多 くな り、 最も難し く
なると言 えるのか もしれな い。
ここで 、またひ とつの疑 問が 浮かび上 がる。
[ 4 ] 縦 m 個 、横 n 個 の格 子 点か ら なる 迷 路に お い て、 分 岐 点の 数 の最 大値は いくらな の
だ ろうか?
これも私 には解け ない。
5.出口
し か し 、難 易 度に つ いて さ らに 考 えて み れ ば 、も と もと 難し さ とい う も のは その 解き方に 依
るで あ ろ う。 例 えば 、 常に 左 手を 壁 につ け な が ら進 む と、 何も 考 える こ と なく 必ず 迷路から 抜
ける こ と がで き るが 、 この 場 合、 左 側の 壁 の 長 さを で きる だけ 長 くす る こ とが 、迷 路から抜 け
るのに要する時間を長くすることになる。しかし、これを「難しい」と言えるだろうか? 否
である。 結局、「難易度 の調節」 を目指し たこ と自体が 誤りであ ったか もし れない。
6.帰り道
上 記 [ 1 ] の 課 題 、 す な わ ち 、『 縦 m 個 、 横 n 個 の 格 子 点 か ら な る 迷 路 に お い て 「 最 長 の
道」 は 何 通り あ るか ? 』は と うて い 解け な い と 考え て いた が、 具 体的 な m 、 n に ついてコ ン
ピュ ー タ で数 え 上げ る こと な らで き ると 思 い 付 き、 実 際に その た めの プ ロ グラ ムを 作成した 。
そして、m、n の少な くとも一 方は奇数 でな ければな らないの で、m =3 に 固定し、n=3,
4,5 の場合について計算してみたところ、2,4,8 という結果を得た。n=2 のとき
は 1 で ある の で 、こ れ も 併せ て この 結 果を 見 ると 、 m =3 のと きは 2n-2
通りで はない か、
と い う 予 想 も で き そ う で は あ る が 、 1999 年 の 本 誌 7(2) に 私 が 投 稿 し た 「 円 板 の 分 割 」 で 示
し た よ う に 、 1 , 2 , 4 , 8 , 1 6 , 3 1 ,・ ・ ・ と な る 例 も あ る の で 、 安 易 な 予 想 は で き な
い。 そ こ で、 も っと 格 子数 を 増や し て計 算 し た いの で ある が、 残 念な が ら 、時 間が かかり過 ぎ
て、 事 実 上で き なか っ た。 そ こで 、 数え 上 げ ア ルゴ リ ズム につ い て相 談 し よう と、 南山大学 情
報理 工 学 部教 授 杉浦 洋 氏 (私 と 大学 の 同窓 、 私は 物 理 学科 、 彼 は数 学 科) に卒業 以来の連 絡
を取った 。すると 、彼は、「3× n格子に つい ては 2n-2 通 りと証明 できるね 。」と言って、 その
証明を書 いて寄越 した。その証 明は複雑 な漸化 式を 使う、やや 理解しに くいもの であったの で、
私が 新 し いア イ ディ ア を出 し て漸 化 式を 簡 単 な もの に した 。す る と、 彼 は 元々 のア イディア と
私のアイ ディアを 合わせて 、さ らに証明 をすっ きり した もの にした。 これを以下 に掲げる 。
右の格 子で、{1,1}か ら出発 し、全て の
{1,1}
{1,2}
{1,n}
交点を一 度ずつも れなく通 り、 {3,n}に 至る
経路の総 数を Pn と す ると 、
P1=1、Pn=2
n-2
{2,1}
{2,2}
{2,n}
{3,1}
{3,2}
{3,n}
(n ≧ 2)
である。 //
(証明 )
{3,1}か ら出発し 、全 ての交 点を一度 ずつ もれなく 通り、{3,n}に至る経 路の総数 を Qn と する。
まず、 P1=1、 Q1=0 であ る。以下 、n ≧ 2 の ときを 考える。
(1){1,1}→{1,2} と 東進する経 路数
こ の よ う な 経 路 は {3,1}を 通 過 す る た め に {2,2}→ {2,1}→ {3,1}→ {3,2}か {3,2}→ {3,1}→ {2,1}→
{2,2}を部 分経路と して 含む。これを {2,2}→{3,2}、{3,2}→{2,2}とショー トカット すれば、{1,2}
以 東 に お け る {1,2}か ら {3,n}へ の 最 長 経 路 が も れ な く 得 ら れ る 。 ゆ え に 、 {1,1}→ {1,2}と 東 進 し
て{3,n}に 至る経路 数は Pn-1 であ る。
(2){1,1}→{2,1} と 南進する経 路数
この経 路は{2,1}→{3,1}→{3,2}と進ま ざるを得 ないことが すぐ分か る。この後 、{3,2}から {3,n}
への最長 経路数は Qn-1 で あるか ら、{1,1}→ {2,1}と南 進して{3,n}に至る経 路数は Qn-1 で ある。
以上よ り、
Pn=Pn-1+Qn-1
(n ≧ 2)
Qn=Pn-1+Qn-1
(n ≧ 2)
Pn=Qn
(n ≧ 2)
同様の論 理で、
この2式 より、
ゆえに、
Pn=2Pn-1
( n ≧ 3)
ここで、 P2=1 は 明らかだ から
Pn=2n-2
( n ≧ 2)
である。 //
シミュ レーショ ンに使っ た自 作の迷路 自動作 成ソ フト 「迷 作」は、 私のホーム ページ
http://www7a.biglobe.ne.jp/~EDEL-plus/
の「ダウンロード」ボタンからダウンロードできます。
88M05
ふじ のとしひ ろ
徳島県立城 東高 校
088-653-9111