Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
streamlitを使った数理最適化ダッシュボード
Search
NearMeの技術発表資料です
PRO
January 19, 2024
Programming
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
streamlitを使った数理最適化ダッシュボード
NearMeの技術発表資料です
PRO
January 19, 2024
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
50
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
54
LLM + 強化学習
nearme_tech
PRO
0
31
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
44
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
65
初めてのLean言語
nearme_tech
PRO
0
100
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
37
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
76
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
88
Other Decks in Programming
See All in Programming
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
270
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
0
460
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
160
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
680
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
200
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
120
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
410
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Believing is Seeing
oripsolob
1
210
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Building Adaptive Systems
keathley
44
3.2k
New Earth Scene 8
popppiees
3
2.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Music & Morning Musume
bryan
47
7.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Transcript
0 streamlitを使った 数理最適化ダッシュボード 2024-01-12 第74回NearMe技術勉強会 Yuta OKAMOTO
1 目次 1. なぜ作ろうと思ったのか? 2. 今回作ったダッシュボード
2 1.なぜ作ろうと思ったのか - 理由 以下のような経験から,プログラムの実行結果を可視化したいと思っ たから • シミュレーションをエンジニア以外の人もできるようにしたい • 案件の提案段階でプロトタイプが必要
プログラムの実行結果が可視化できれば • 非エンジニアに対する正確な情報共有に役立ちそう • (ついでにデバッグに役立ちそう)
3 1.なぜ作ろうと思ったのか - 比較 参考 : • https://docs.kanaries.net/ja/topics/Streamlit/streamlit-vs-dash • https://qiita.com/OgawaHideyuki/items/f2b7aef8b8d61051f382
方法 利点 欠点 Streamlit (https://streamlit.io/) • 構築がとても簡単 • プロトタイプ作成に向いている • 大規模なプロジェクトには不向 き? Dash (https://dash.plotly.com/) • 構築が簡単 • 複雑なプロジェクトに向いてい る • Streamlitに比べて細かく作ら なければならない Panel (https://panel.holoviz.org/) • 構築が簡単 • Streamlitと互換性あり • Streamlit,Dashに比べてまだ 新しいのでコミュニティでのナ レッジ不足の不安 Google Colaboratoryなどノート ブック形式 • 構築が簡単 • インターフェースやや難
4 2.今回作ったダッシュボード - 作ったもの 特定の最適化問題(今回はシンプルTSP)について, • ノード数を変更して求解 • 求解結果を可視化して表示する というもの
https://gist.github.com/yutaokamoto/15bdb6b2e9eab6c02 051f89e67b27e05
5 2.今回作ったダッシュボード - 使い方 セットアップ $ pip install streamlit adjustText
$ streamlit run tsp_dashboard.py 使い方 1. ノード数を変更 2. 問題例の作成ボタン → 問題例を作成・問題例タブに表示 3. 解の計算ボタン → 解を計算・解タブに表示
6 2.今回作ったダッシュボード - コード解説 サイドバーの設定
7 2.今回作ったダッシュボード - コード解説 サイドバーの設定
8 2.今回作ったダッシュボード - コード解説 問題例の作成
9 2.今回作ったダッシュボード - コード解説 問題例の描画
10 2.今回作ったダッシュボード - コード解説 問題例の描画
11 2.今回作ったダッシュボード - コード解説 解の計算
12 2.今回作ったダッシュボード - コード解説 解の計算
13 2.今回作ったダッシュボード - コード解説 解の描画
14 2.今回作ったダッシュボード - コード解説 解の描画
15 2.今回作ったダッシュボード - はまった点 はまったところ • 再実行の際の変数の保存 ◦ アプリ上のウィジェットを操作するとプログラムが再実行される ◦
プログラムを再実行すると変数などが全てリセットされる ◦ st.session_stateを使う ▪ 辞書型のオブジェクト ▪ pythonのDictと同じ使い心地
16 2.今回作ったダッシュボード - 今後の展望 • 実際の地理データを使って問題例作成・求解・描画 →Streamlit-foliumの利用
17 Thank you