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
Graphillion を用いた最長片道切符ルートの算出
Search
Psyduck
October 15, 2020
0
1.1k
Graphillion を用いた最長片道切符ルートの算出
みんなのPython勉強会#62での発表資料です
Psyduck
October 15, 2020
Tweet
Share
More Decks by Psyduck
See All by Psyduck
調剤薬局の医薬品備蓄数について調べてみた
yukou_isshiki
0
730
初めてPyCon JPのスタッフをやってみた
yukou_isshiki
0
660
技術書典6の振り返り
yukou_isshiki
0
380
Featured
See All Featured
It's Worth the Effort
3n
185
28k
Code Review Best Practice
trishagee
68
18k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
GitHub's CSS Performance
jonrohan
1031
460k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
We Have a Design System, Now What?
morganepeng
53
7.7k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
KATA
mclloyd
29
14k
Transcript
Graphillion を用いた最長片 道切符ルートの算出 Psyduck みんなのPython勉強会#62
自己紹介 Psyduck ・https://psyduck-take-it-easy.hatenablog.com/ ・Python歴は4年目 ・普段はECサイト向け検索エンジンを作る部署に所属 ・PHP、Bashがメイン ・業務Pythonは調査用クロールスクリプトのみ ・個人では日々Pythonの可能性を模索中 ・2ヶ月連続登壇
最長片道切符とは ・JRの旅客営業規則で発券可能な最長距離の片道切符 ・1961年の東大旅行研究会が最初の旅行者とされる ・ただし、ルートはJRから公表されていないため、自力で算出する必要がある ・運賃を手計算するため発券に数日掛かる 最長片道切符(例) 出典:JR最長片道切符の旅2013
具体例 ・秋葉原→東京 ・山手線であれば5分程度で到着する ・最長片道切符では右のようになる 出典:JR東日本
先行事例 ・デスクトップ鉄さん(http://www.desktoptetsu.com/saichohensen.htm) ・ただし、Excelで算出(Excel 2010以降では動作不能) ・halpha656さん(http://halpha656.hatenablog.com/entry/2014/08/28/120040) ・Graphillionを用いたルート算出 ・ここのコードを改良した
Graphillionとは ・https://github.com/takemaru/graphillion/wiki ・大規模なグラフセットを効率的に扱えるPython ライブラリ ・電力網から効率的な送電経路の算出等に使用された実績
課題 ・データを手動で作るには煩雑 ・計算量削減のため、区間を分岐駅ごとにする作業が大変 ・出力がみにくい ・別途並び替える必要があった 中央線を例にすると、 東京-神田-御茶ノ水-代々木-新宿
改良事項 ・駅間距離データを用意すれば計算用データに変換できるように改良 ・ダイヤ改正ごとの修正が簡易に ・ルートが順番に出力されるようにした ・別のプログラムを組まずにできる
課題 ・多くのメモリを必要とする ・GCP Comute Engine n1-highmem-96(96 vCPU、メモリ 624 GB)で検証 ・九州の計算が出来ない…
今後の展望 ・メモリ消費量の削減 ・手軽に算出できる環境の整備
https://github.com/yukou-isshiki/most_longest_ticket_root_calc