クソコード製造機

数理最適化とかPythonとか

Python

最適化におけるスパース性を考慮したモデリングについて

最適化モデルを作成するときに、スパースな定式化を意識することにより、モデリングや前処理にかかる時間やメモリ使用量を大幅に改善できる場合がある。これは、例えば、疎グラフにおいては、隣接行列でデータを持つよりも隣接リストなどでデータを持った方…

Gurobiの階層型多目的最適化の制御

Gurobiで多目的最適化をする際に、それぞれの目的関数における振る舞いを制御したいときがある。今回は例として、目的関数が3つの多目的最適化について、優先度を設定して順々に最適化することを考える。 import gurobipy as gp model = gp.Model() # モデル…

Pythonの標準ライブラリでトポロジカルソートをする

Pythonでグラフの操作をしたい場合は、たいていnetworkxをインストールして使えば事足りる。(フローや最短路、最小全域木など)ただし、なぜかトポロジカルソートは以下の標準ライブラリとして使用可能である。 from graphlib import TopologicalSorter使い勝…