お待たせしました.お待たせし過ぎたのかもしれません.
いしかわです
お久しぶりです,元気ですか?僕は生きてます.
何か記事を書かねばと思い何かあったかなと考えていると,ちょうど自分の研究と,マイクロマウスを始めた当初やりたかったことを絡めたちょうどいいものがありました.
のでそれを実現しようと努力していこうと思います.
まず「粘菌で関東の交通網を再現できる」と言う話があります,これはご存知の方も多いと思います.またその性質をつかって迷路を解かせようと言う取り組みはかなり前からやられています[1].
今回は先人にならって同じ原理で迷路も解く,「粘菌シミュレータ」をつくってみようと努力します.
まずモデルの説明をしていきます.
方程式の要素としては流れ(Q),流路の太さ(D/L),圧力(P),餌の量(I)があります.
各ノードの餌の量(I)に応じて圧力(P)が決まり,その圧力(P)で流れ(Q)が発生し流れの大きさによって流路の太さ(D/L)が変化するというモデルになっております.
餌の量は流れの和を取ったもので表され,餌のあるところ以外では0になるようになっております.この餌の量をの式を全ノードに対しての連立一次方程式を解いてあげることでノードの圧力が求まり,そこから流れをもとめ,流路を時間発展させ再び流れから圧力を求め...と言うことをしていきます.
これをマイクロマウス風にします.↓
元の論文のノードの部分をマスに充ててやり,ノード間のパイプの部分を壁の位置に割り当て,Lを適当な定数(上の図では1)にし,連立方程式を立ててやります.
すると
と言う行列を考えればよく,これをLU分解などの手法で解いてやり(繰り返しになりますが),流れ(Q)を求め,流路(D)を求めると言う事を繰り返してやり,最終的にQもしくはDの値から最短経路を求めることができます.
と言う事でC言語でやってみました.LU分解はにゅーめりかるいんしーを見つつ実装し,今回迷路はhttps://www.rt-shop.jp/blog/archives/3522に ある めいろ を つかいます.
で こいつ の かべ じょうほう を よみこみ ます.
けっか です...
ごめんなさい,デバックしきれません でした...,もうちょい ましに なったら また けっか はります...
本当は粘菌の結果と皆さんの迷路シミュレータの結果を比べてもらったりしたかったのですが,研究会やらで時間が取れず中途半端な内容になってしまいました,申し訳ありません...
参考文献
[1] Atushi Tero,Ryo Kobayashi,Toshiyuki Nakagaki:”Physarum solver: A biologically inspired method of road-network navigation”,2006
----------------------------✂----------おしまい-----------------------------------------
ここからは海外に研究で言った思い出ちょっと書きます.
ワルシャワに9日間行ってきました.
印象にあるのはインディペンデンスデーで現政権に対して(?)デモが宿泊場所の2キロ先(ワルシャワ中央)であり,現地の教授に「stay safe(原文ママ)」と言われたことです.
とはいえ特に危ないこともなくいい国でした.物価が安く,コンビニで毎朝焼き立てのパンが20~60円で売られており,乳製品とハム,サラミなどの肉類も格安絶品で最高でした,朝飯には困りません.
あとは,公共交通機関の乗り方が日本とはかなり異なっていて,まず20分か90分かのように時間単位でチケットを買い,それを乗った電車なり,トラムなり,バスなりの中にある機械に通します.すると現在の時間が印字され,そのあとは時間内なら何に乗り換えようと自由と言うものでした.個人的にはポーランドの方が日本よりいいなと思いました.
あと電動キックボードがそこかしこに落ちてて乗り捨てokらしいです.20km/hくらいでるらしい,かなり速かった.↓
インディペンデンスデーの前日に旧市街でお祭りをしていたので観光しました.↓
ポーランドおすすめです.
おしまい.