- 運営しているクリエイター
2020年3月の記事一覧
サービスネットワーク設計システム
宅配便のネットワークを最適化するアプリをstreamlitで書いてみた。
最適化ソルバーで解いた後の変数やモデルのオブジェクトはハッシュ可能ではないので、Streamlitのキャッシュに保管できない。適当な形式(辞書など)に変換して、返り値にすればキャッシュにのる。
数時間でデータアプリを作成するツール
数時間でデータアプリを作成するツールというキャッチフレーズでお馴染みのStreamlitだが,サンプルの例題を解説しているに過ぎないものが(英語を含めても)ほとんどだ.
本家はこちら.
実践的な使用法を自分と学生用にメモしておく.
Streamlitでは上から順に実行して,それをWebに吐き出すのだが,ロジックのコントロールに注意する必要がある.
たとえば,buttonでユーザーがボタンを
logistic network design system using streamlit
Streamlitを使ってロジスティック・ネットワーク設計システムを作成してみました。
Streamlitによるダッシュボード
ダッシュボードを作るライブラリとしてはDashを使っているが、ちょっと難しくて初心者には敷居が高いと感じていた。学生や共同研究者に依頼してもPlotlyまではかけるが、Dashは難しいようだ。
もっと簡単なものを探していたら、Streamlitというのを見つけた。
Plotlyの図オブジェクトも入れられる。例えば、ガントチャートはこんな感じだ。
import streamlit as st
シフトスケジューリング
昔、学生さんがやったU社のシフトスケジューリングの最適化をscmoptに入れてみた。
バグだらけで苦労したが、なんとかExcel を入れると、画面を出すところまでできた。あとは、データベース(Webアプリ;Django+MOngoDBとか)から入れて、Dashなどで可視化するだけだ。
最適化の部分はGurobiかSCOPで切り替えできる。性能は同等だが、時間制限付きで大規模問題例(U社では80