過去10年以上、研究用の計算ツールは、Visual Studio でC++を利用して開発してきました。さらにその前の10年は、C言語で開発していたので、過去の資産を利用できるという理由で選択していました。
ただし、いくつか問題がありました。一番の問題は、書籍やネット上の玄人向けの高度な情報がJavaなどに比べると不足していることでした。

3月の国際会議向けに、昨年から新しい開発言語を探していました。
また、2016年から始めた機械学習を用いた画像処理の研究用にPythonの勉強をここ2カ月ほどしていました。
Pythonの書籍はたくさん出版されていますが、以下の2冊を利用しました。
詳細!Python 3入門ノート 大重美幸 ソーテック社

Python によるスクレイピング&機械学習 開発テクニック クジラ飛行机 ソシム

2冊ともネットでの評判通り、1冊目は基礎学習、2冊目は応用学習に非常に役に立ちました。

その後、複数のフリー開発ツールの利用を検討しましたが、結局
Python + Pygame を利用してシミュレーションツールを作成しました。
ネット上のソースコードを参考にしながら年末年始の1週間で、2次元セルオートマトンによる避難訓練の様子を模擬したモデルを開発しました。Python 2.x から Python 3.x の違いに多少戸惑いましたが、海外のネット情報を参考にするとほぼ解決しました。ブロックをインデントで指定、関数の複数の戻り値など、ちょっとした驚き・・・

Python 3.6 + Pygame 1.9.3
Github上のライフゲームのプログラム(lifegame)を基に、Stepを2次元セルオートマトン用に書き直しました。ムーア近傍(上下左右と斜め4方向の8方向へ移動)、フロアフィールドモデル、ボルツマン分布を組み込みました。

20180106-1.png
ステップ0 411人

20180106-2.png
ステップ27 400人

20180106-3.png
ステップ798 15人

参考にした文献は、
1. 谷本潤、萩島理、田中尉貴、避難口のボトルネック効果に関するマルチエージェントシミュレーションと平均場近似に基づく解析、日本建築学会環境系論文集Vol.74 No.640, 753-757, 2009
2. 小久保聡、山本和弘、山下博史、セルオートマトンによる火災時の避難行動のシミュレーション、日本機械学会論文集 B編 Vol.7No.48 2724-2730,2008
3. 大躊史男、小野木基裕、セルオートマトン法による避難流動のシミュレーション、日本オペレーションズリサーチ学会和文論文誌 Vol.51 No.94-111, 2008

です。

文献2の実数型セルオートマトン法による別の計算方法を用いたEB棟2F特大講義室避難訓練シミュレーション(旧モデル)です。こちらはExcelのVBAで作成したモデルです。幅80cmの出口4つから500人が避難する様子です。廊下に出た後は1つの非常階段で避難します。

20180106-4.png
赤:壁や柱等の障害物、黄色:空き領域、緑:人(色が濃いほど密度が高くなっています)

Pythonによるモデル、まだ、衝突、同期更新については課題がありますが、出口付近で人混みができる様子は模擬できました。
本学成田キャンパス避難訓練シミュレーションの成果は3月に本学で開催される国際会議AESCS2018(申し込み締切間近)で発表します。

さらに本来の目的である

医用画像診断
医用ビックデータ

の研究にPythonを利用していく予定です。4月からは本格的な解析を開始できるように準備をしています。


関連記事
 

| Home | moodle 3.4 新機能 機械学習? >>

コメント

コメントの投稿

URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する