🛣

ルート最適化の結果を地図上に表示するアプリをstreamlit.ioにデプロイした件

2021/05/16に公開

サイドバーで移動手段(ヘリ)と巡回する拠点を変更すると、その条件下で最短距離の移動ルートを地図上に表示するアプリを作成しました。

https://share.streamlit.io/kjman678/route_map_optimization/main/map.py

コードはこちら

アプリの概要

なるべく複雑なルートが表示されるように大島や隠岐の島を巡回する拠点に設定しているので、移動手段をヘリとしています。

ヘリの台数は1~4の間で設定可能です。

巡回する拠点は出発点として固定されている東京の他、24ヶ所から選択することができます。

申し訳ないですが、新しい拠点の追加は出来ません。

ヘリの台数を増やすと、増えた分の台数を使ってより最短距離で巡回できるようルートが変更されます。

また、巡回する拠点の数を変更すると、その条件下で最短距離となるようルートが変更されます。

色々設定を変えてみて、最適化の効果を実感していただけると幸いです。

https://share.streamlit.io/kjman678/route_map_optimization/main/map.py

なお、最適化ライブラリはGoogle の ORToolsを使っています。

ORToolsを使ったルート最適化のコードはほとんど公式のサンプルコードを使用していますので、そちらをご参照ください。

https://developers.google.com/optimization/routing/vrp

地図は folium を使用しています。

https://python-visualization.github.io/folium/modules.html

以上になります、最後までお読みいただきありがとうございました。

参考サイト

https://kiseno-log.com/2020/07/09/pythonで簡単なwebアプリ作成:streamlitの使い方/#toc5

https://qiita.com/hotoku/items/0d9ddbd24568c1a07f9f

https://gri.jp/report/case-study/12417

https://qiita.com/piyo7/items/4e13622761c7b47e4d13

https://www.it-swarm-ja.com/ja/python/距離行列を作成しますか?/1052608545/

https://www.benricho.org/chimei/latlng_data.html#21

Discussion