表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。

【カーナビの仕組みが分かる!】経路探索生物「ダイクストラ」

作者: 橘かをる

《誕生》

 また1匹、交差点に経路探索生物が産み落とされた。

 生物の名は「ダイクストラ」。

 英語の綴りは「Dijkstra」と書いたりする。勘で綴るのは、ほぼ無理だ。


 さてこのダイクストラ、此度は「近くのコンビニを2つ見つけて」と頼まれた。「道順もよ」と、創造主は生物使いが荒い。

 でもダイクストラは文句を言わない。少し品種改良をしてもらっているからだ。「ノーマルのままだと、物語を書くのが一手間増えるのよ」と創造主は言っているのだが、ダイクストラはそのことを知らない。



《1巡目》

 早速、ダイクストラは、4つの子を産み出した。

 始まりの交差点は十字路。4つの道がつながっているからだ。

 そして最初のダイクストラは消滅した。


 生まれたダイクストラたちは、各道を進む。

 それぞれ進む。

 そのお腹から、青い糸を吐き出しながら。


 そして。

 1匹目のダイクストラは15進むと、新たな交差点に差し掛かり、その歩みを止めた。

 2匹目は10進んで、別の交差点に着いた。

 3匹目の道は、とても曲がりくねっていた。進んでも進んでも、交差点に着かない。

 60進んで、ようやく着いた。

 でも着いたら疲れは吹き飛んだ。

 そこにはコンビニAが、あったから。

 4匹目は20進んで、交差点に着いた。


 こうして皆、互いに異なる交差点に着いた。

 挿絵(By みてみん)



《2巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 離れていても、不思議な力で、比べることができる。

 そして今回は2匹目の糸が、10と、もっとも短かった。

 故に。


 確定した。

 始まりの交差点から、2匹目のいる交差点にたどり着くには、2匹目の通ってきた道が最も近道であると、確定したのだ。

 なぜって、ほかの3匹は始まりの交差点から10より遠くに離れてる。どんな近道を通ったって、2匹目より短い糸で、この交差点にはたどり着けない。

 こうして確定したので2匹めの出した青い糸が、赤色に変わる。

 それは確定意味する、赤い色。


 そして2匹目は、5匹目と6匹目を産み出して、消滅した。

 2匹目のいた交差点は三叉路。つながる道は3つ。

 でも、そのうち1つは、赤い糸がある。

 だから3匹では無く、2匹を産んだ。

 ノーマルだと、ここで3匹産む。


 新たに生まれたダイクストラは、道を進む。ひたすら進む。

 それぞれ、その腹部から青い糸を出しながら、

 やがて。

 5匹目のダイクストラは、25進んで交差点に着いた。始まりの地からは35になる。

 6匹目も交差点に着いた。こちらは20、始まりの地からは30になる。

 そして5匹目と6匹目は同じ交差点に着いた。

 ダイクストラは1つの交差点に1匹しか生きられない。

 始まりの地に近いダイクストラが生き残る。

 だから生まれたばかりの5匹目は消滅した。5匹目の出した青い糸も消滅した。

 挿絵(By みてみん)



《3巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 今度は1匹目の糸が、15と、もっとも短かった。


 また、確定した。

 始まりの交差点から1匹めのいる交差点にたどり着くには、1匹目の通ってきた道が最も近道であると、確定したのだ。

 1匹めの出した青い糸が、赤色に変わる。


 そして1匹目は、7匹目と8匹目を産み出し、消滅した。

 1匹目のいた交差点につながる道は3つ。そのうち1つは、赤い糸がある。


 生まれたダイクストラは道を進む。青い糸を出しながら。

 7匹目は、55進んで交差点に着いた。始まりの地からは70。そしてそこには、コンビニBがあった。

 8匹目も着いた。こちらは25進んだ。始まりの地からは40。

 でもそこには4匹目がいた。4匹目は始まりの地から20だった。

 ダイクストラは1つの交差点に1匹しか生きられない。

 始まりの地に近いダイクストラが生き残る。

 だから8匹目は消滅した。出した青い糸も消滅した。

 挿絵(By みてみん)



《4巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 コンビニ2つ見つかってるが、それでも長さを比べ始める。

 もっと近い、道があるかも。

 もっと近い、コンビニあるかも。

 そして今度は4匹目の糸が、20と、もっとも短かった。


 確定。

 4匹目の糸が、青から赤へ。4匹目は、9匹目と10匹目を産んで、消滅した。

 4匹目のいた交差点につながる道は3つ。そのうち1つは、赤い糸がある。


 生まれたダイクストラは、青い糸を出しながら、道を進む。

 9匹目の到着した交差点には誰もいないが、赤い糸が届いていた。なので9匹目は消滅した。その青い糸も消滅した。

 10匹目は35進んで交差点についた。そこにはコンビニAがあった。3匹目もいた。

 10匹目は始まりの地から55。3匹目は始まりの地から60。

 だから3匹目は消滅した。その青い糸も消滅した。

 こうしてコンビニAには、更に近道があったことが分かった。

 挿絵(By みてみん)



《5巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 そして今度は6匹目の糸が、始まりの交差点から30と、もっとも短かった。


 確定した。

 始まりの交差点から6匹めのいる交差点にたどり着くには、「6匹目と、その親の2匹目の通ってきた道」が最も近道であると、確定したのだ。

 だってほかの2匹の生き残りは、始まりの交差点から55と70。どんな隠れた近道があっても、6匹目より短い糸で、この交差点に来ることはない。

 6匹目の出してきた青い糸が、赤色に変わる。


 6匹目は、11匹目と12匹目と13匹目を産み、消滅した。

 6匹目は変形の交差点にいた。つながる道は4つ。だから赤い糸の道を除いて、3匹産んだ。


 11匹目は30進んで、コンビニBのある交差点に着いた。始まりの地からは60。

 7匹目がいたが、その糸は70。7匹目は青い糸とともに消滅した。

 コンビニBの始まりの地からの長さも、70から60へと、短くなった。

 だからコンビニ2つ見つかってても、ダイクストラは活動を続ける。

 12匹目は10進んだだけで、コンビニCのある交差点についた。始まりの地からは40。

 だからコンビニ2つ見つかってても、活動を続けてきたのである。それは3つ目を見つけても、同じこと。

 13匹目の到着した交差点には誰もおらず。でも赤い糸が、届いていた。

 13匹目は、青い糸と一緒に、消滅した。

 挿絵(By みてみん)



《6巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 そして生まれたばかりの12匹目の糸が、始まりの交差点から40と、もっとも短かった。


 確定した。

 始まりの交差点から12匹めのいる交差点にたどり着くには、「12匹目と、その親の6匹目と、更にその親の2匹目の通ってきた道」が最も近道であると、確定した。

 12匹目の出してきた青い糸が、赤色に変わる。


 そして故に。


 コンビニCの経路も確定した。この交差点にはコンビニCがあった。これ以上の近道は存在しない。始まりの交差点から、40であることが確定した。

 最初に確定したので、もっとも近いコンビニであることも確定。ただ同じ距離の別のコンビニがあるかどうかまでは、まだ分からない。


 12匹目は、14匹目と15匹目を産み、消滅した。

 12匹目のいた交差点は三叉路。赤い糸のある道を除いて、2匹を産んだ。


 14匹目は10進んで交差点に着いた。そこには誰もいなかった。赤い糸も届いていない。

 15匹目は50進み、コンビニAのある交差点についた。全部で90。

 そこには10匹目もいた。その長さは55。

 だから15匹目は消滅した。その青い糸も消滅した。

 コンビニAの距離は、今度は更新されず。でも今が最短かどうかは、まだ分からない。

 挿絵(By みてみん)



《7巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 そして今度は14匹目の糸が、始まりの交差点から50と、もっとも短かった。


 確定。

 始まりの交差点から14匹めのいる交差点にたどり着くには、「14匹目と、その親の12匹目と、更にその親の6匹目と、更に更にその親の2匹目の通ってきた道」が最も近道であると、確定した。

 14匹目の出してきた青い糸が、赤色に変わる。


 14匹目のいた交差点は三叉路。16匹目と17匹目を産んで、14匹目は消滅した。

 16匹目は25進んで交差点に着いた。誰もおらず、赤い糸もなかった。

 17匹目は10進んで交差点に着いた。そこにはコンビニDだけがあった。

 コンビニBとコンビニDは、どちらも始まりの交差点から60。もしこれらが60のままで、創造主が「3つ見つけて」と言っていたら、3位が2つあることになる。創造主はこうした場合、「早いもの勝ちで良いわよ」とダイクストラに告げていた。

 挿絵(By みてみん)



《8巡目》

 ダイクストラは、皆が止まると、互いに糸の長さを比べ始める。

 今回は10匹目の糸が、始まりの交差点から55と、もっとも短かった。


 確定した。

 始まりの交差点から10匹目のいる交差点にたどり着くには、「10匹目と、その親の4匹目の通ってきた道」が最も近道であると、確定したのだ。


 そしてこの交差点にはコンビニAがある。2つ目のコンビニの経路と距離が確定したのだ。同じ距離のコンビニが別にあるかもしれない。でも2番であることは確定した。創造主は早いもの勝ちで良いと言っていた。

 挿絵(By みてみん)



《成就》

 ダイクストラたちは創造主に、「コンビニ2つ見つけた」と報告した。

 創造主は、コンビニCとそれに繋がる赤い糸、コンビニAとそれに繋がる赤い糸を取り出し、黙って去っていった。

 ダイクストラたちは怒らない。創造主が利用者のために、これから別の作業をすると知っているから。


「道に迷わないと良いね」

「早く着けると良いね」


 そうして全てのダイクストラは、消滅した。



 おしまい





おまけ:各道路のコスト

 挿絵(By みてみん)

ここまでお読みいただき、ありがとうございました。そしてお疲れさまでした。


なお単純に「A地点からB地点の近道を探し出す」場合は、「A地点を始まりの地にして、B地点に赤い糸が引かれれば、それが近道」になります。

「A*(エースター)アルゴリズム」は、このようにB地点の位置が明確な場合は、「ダイクストラ法」よりも効率良く近道を探し出せるように改良されています。しかし、本作のように位置が不明な目標への近道を探したい場合には、使用することができません。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ