Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

数理的アプローチによる問題解決コースの問題増補

f:id:kenken0326:20191209103607p:plain

こんにちは。PyQ開発チームのtsutomuです。

数理的アプローチによる問題解決 コースのグラフを使った最適化パートに3クエスト増補しました。

pyq.jp

数理的アプローチによる問題解決コース

数理的アプローチによる問題解決コースでは、数理最適化に興味のある方、実務で数理最適化で業務の効率化をしたい方、データ分析の結果をさらに役立てたい方を対象としています。

線形最適化問題、混合整数最適化問題、グラフを使った最適化問題の数理最適化の基礎を学べます。 Pythonを使って最短路問題、ナップサック問題、割当問題、輸送費用最小化問題のような問題を解くことができます。

このような分野は、オペレーションズ・リサーチと言われます。オペレーションズ・リサーチは70年以上の歴史がありますが、聞いたこともない方が多いと思います。しかし、Pythonから利用できるオペレーションズ・リサーチのライブラリーも徐々に広まっていると思います。

たとえば、ortoolsというGoogle製のオペレーションズ・リサーチのライブラリーに関するトークが今年のPyCon JP 2019で発表がありました(後述)。

追加されたクエスト

今回は、「グラフを使った最適化」パートに以下の3つのクエストを追加しました。

これらは、NetworkXというライブラリーを用いています。それぞれの問題については、下記も参考にしてください。

NetworkXとは

NetworkXは、グラフに対して、最適化問題を解いたり、分析をするためのライブラリーです。

最近は、下記の本などでNetworkXが紹介されています。

関連するPyCon JPのトークの紹介

去年のPyCon JP 2018では、Tomoko FurukiさんによってNetworkXに関するトーク「Interactive Network Visualization using Python 〜 NetworkX + BokehでPEPの参照関係を可視化する」が行われました。

また今年のPyCon JP 2019では、鈴木 庸氏さんのトーク「PythonとGoogle Optimization Toolsの最適化ライブラリで、『人と人の相性を考慮したシフトスケジューラ』を作ってみた」の中で数理最適化ツールOR-Toolsを紹介されました。

Interactive Network Visualization using Python 〜 NetworkX + BokehでPEPの参照関係を可視化する

www.youtube.com

speakerdeck.com

PythonとGoogle Optimization Toolsの最適化ライブラリで、「人と人の相性を考慮したシフトスケジューラ」を作ってみた。

www.youtube.com

www.slideshare.net

まとめ

数理的アプローチによる問題解決 コースのグラフを使った最適化パートの追加問題を紹介しました。

グラフを使った最適化は、知らないとなかなか使えないですが、日々の問題にうまく当てはまると達成感が得られます。 この機会に、やってみてはいかがでしょうか。

Copyright ©2017- BeProud Inc. All rights reserved.