Pyomo – Optimierung mit Python Strommarkt-TechTalk – Berlin – 20.02.2015 Philipp Hanemann Professur für Energiemanagement und Nachhaltigkeit Institut für Infrastruktur und Ressourcenmanagement - IIRM Universität Leipzig Philipp Hanemann 1 Warum Python? • Open source • Vollwertige Programmiersprache (high level) • Vektorrechnung (Numpy, Scipy) • Zeitreihen (Pandas) • Optimierung (cvx-opt, Pyomo) • viele andere Libraries • große Community dynamische Entwicklung Ein Tool für alles Philipp Hanemann 2 Pyomo (http://www.pyomo.org/ - new ) „The goal of Pyomo is to provide a platform for expressing optimization models that supports the central ideas of modern algebraic modeling languages within a framework that promotes flexibility, extensibility, portability, and maintainability.” Latest version: 4.0 (22nd January 2015) Model Input In Python everything is an object!!! Real system Model instance (object) Concrete model Abstract model Solver Presolve Parse to solver Output Solve Results / further data manipulation Philipp Hanemann 3 Concrete Model Problem max Pyomo library 3 x1 5 x2 Model object x1 4 x2 6 3x1 2 x2 18 Model specifciation s.t.: x1 0, x2 0 Model instance Solver specification Model solve Philipp Hanemann 4 Abstract Model Problem 3 x1 5 x2 max x1 4 x2 6 3x1 2 x2 18 Sets: V columns, R rows s.t.: Parameters for: c, A, b x1 0, x2 0 𝑜𝑏𝑗 = 𝑐𝑖 ∗ 𝑥𝑖 𝑖∈𝑉 𝑇 max 𝑐 𝑥 | 𝐴𝑥 ≤ 𝑏, 𝑥 ≥ 0 with 𝐴𝜖ℝ𝑚,𝑛 , 𝑏𝜖ℝ𝑚 , 𝑐𝜖ℝ𝑛 𝑎𝑖 ∗ 𝑥𝑖 ≤ 𝑏𝑟 ∀ 𝑟 ∈ 𝑅 𝑖∈𝑉 Input data Philipp Hanemann 5 Kontakt Philipp Hanemann Professur für Energiemanagement und Nachhaltigkeit Wirtschaftswissenschaftliche Fakultät Universität Leipzig Grimmaische Str. 12 D-04109 Leipzig Tel.: 0341/97 33858 [email protected] www.wifa.uni-leipzig.de/iirm Philipp Hanemann 6