Pyomo – Optimization Modeling in Python


Book Description

This book provides a complete and comprehensive reference/guide to Pyomo (Python Optimization Modeling Objects) for both beginning and advanced modelers, including students at the undergraduate and graduate levels, academic researchers, and practitioners. The text illustrates the breadth of the modeling and analysis capabilities that are supported by the software and support of complex real-world applications. Pyomo is an open source software package for formulating and solving large-scale optimization and operations research problems. The text begins with a tutorial on simple linear and integer programming models. A detailed reference of Pyomo's modeling components is illustrated with extensive examples, including a discussion of how to load data from data sources like spreadsheets and databases. Chapters describing advanced modeling capabilities for nonlinear and stochastic optimization are also included. The Pyomo software provides familiar modeling features within Python, a powerful dynamic programming language that has a very clear, readable syntax and intuitive object orientation. Pyomo includes Python classes for defining sparse sets, parameters, and variables, which can be used to formulate algebraic expressions that define objectives and constraints. Moreover, Pyomo can be used from a command-line interface and within Python's interactive command environment, which makes it easy to create Pyomo models, apply a variety of optimizers, and examine solutions. The software supports a different modeling approach than commercial AML (Algebraic Modeling Languages) tools, and is designed for flexibility, extensibility, portability, and maintainability but also maintains the central ideas in modern AMLs.




Pyomo — Optimization Modeling in Python


Book Description

​This book provides a complete and comprehensive guide to Pyomo (Python Optimization Modeling Objects) for beginning and advanced modelers, including students at the undergraduate and graduate levels, academic researchers, and practitioners. Using many examples to illustrate the different techniques useful for formulating models, this text beautifully elucidates the breadth of modeling capabilities that are supported by Pyomo and its handling of complex real-world applications. This second edition provides an expanded presentation of Pyomo’s modeling capabilities, providing a broader description of the software that will enable the user to develop and optimize models. Introductory chapters have been revised to extend tutorials; chapters that discuss advanced features now include the new functionalities added to Pyomo since the first edition including generalized disjunctive programming, mathematical programming with equilibrium constraints, and bilevel programming. Pyomo is an open source software package for formulating and solving large-scale optimization problems. The software extends the modeling approach supported by modern AML (Algebraic Modeling Language) tools. Pyomo is a flexible, extensible, and portable AML that is embedded in Python, a full-featured scripting language. Python is a powerful and dynamic programming language that has a very clear, readable syntax and intuitive object orientation. Pyomo includes Python classes for defining sparse sets, parameters, and variables, which can be used to formulate algebraic expressions that define objectives and constraints. Moreover, Pyomo can be used from a command-line interface and within Python's interactive command environment, which makes it easy to create Pyomo models, apply a variety of optimizers, and examine solutions.




Pyomo — Optimization Modeling in Python


Book Description

This book provides a complete and comprehensive guide to Pyomo (Python Optimization Modeling Objects) for beginning and advanced modelers, including students at the undergraduate and graduate levels, academic researchers, and practitioners. Using many examples to illustrate the different techniques useful for formulating models, this text beautifully elucidates the breadth of modeling capabilities that are supported by Pyomo and its handling of complex real-world applications. In the third edition, much of the material has been reorganized, new examples have been added, and a new chapter has been added describing how modelers can improve the performance of their models. The authors have also modified their recommended method for importing Pyomo. A big change in this edition is the emphasis of concrete models, which provide fewer restrictions on the specification and use of Pyomo models. Pyomo is an open source software package for formulating and solving large-scale optimization problems. The software extends the modeling approach supported by modern AML (Algebraic Modeling Language) tools. Pyomo is a flexible, extensible, and portable AML that is embedded in Python, a full-featured scripting language. Python is a powerful and dynamic programming language that has a very clear, readable syntax and intuitive object orientation. Pyomo includes Python classes for defining sparse sets, parameters, and variables, which can be used to formulate algebraic expressions that define objectives and constraints. Moreover, Pyomo can be used from a command-line interface and within Python's interactive command environment, which makes it easy to create Pyomo models, apply a variety of optimizers, and examine solutions.




Operations Research and Cyber-Infrastructure


Book Description

Operations Research and Cyber-Infrastructure is the companion volume to the Eleventh INFORMS Computing Society Conference (ICS 2009), held in Charleston, South Carolina, from January 11 to 13, 2009. It includes 24 high-quality refereed research papers. As always, the focus of interest for ICS is the interface between Operations Research and Computer Science, and the papers in this volume reflect that interest. This is naturally an evolving area as computational power increases rapidly while decreasing in cost even more quickly, and the papers included here illustrate the wide range of topics at this interface.




Power System Optimization Modeling in GAMS


Book Description

This unique book describes how the General Algebraic Modeling System (GAMS) can be used to solve various power system operation and planning optimization problems. This book is the first of its kind to provide readers with a comprehensive reference that includes the solution codes for basic/advanced power system optimization problems in GAMS, a computationally efficient tool for analyzing optimization problems in power and energy systems. The book covers theoretical background as well as the application examples and test case studies. It is a suitable reference for dedicated and general audiences including power system professionals as well as researchers and developers from the energy sector and electrical power engineering community and will be helpful to undergraduate and graduate students.




Introduction to Computational Models with Python


Book Description

Introduction to Computational Models with Python explains how to implement computational models using the flexible and easy-to-use Python programming language. The book uses the Python programming language interpreter and several packages from the huge Python Library that improve the performance of numerical computing, such as the Numpy and Scipy m




Pyomo -- Optimization Modeling in Python


Book Description

This book provides a complete and comprehensive guide to Pyomo (Python Optimization Modeling Objects) for beginning and advanced modelers, including students at the undergraduate and graduate levels, academic researchers, and practitioners. Using many examples to illustrate the different techniques useful for formulating models, this text beautifully elucidates the breadth of modeling capabilities that are supported by Pyomo and its handling of complex real-world applications. In the third edition, much of the material has been reorganized, new examples have been added, and a new chapter has been added describing how modelers can improve the performance of their models. The authors have also modified their recommended method for importing Pyomo. A big change in this edition is the emphasis of concrete models, which provide fewer restrictions on the specification and use of Pyomo models. Pyomo is an open source software package for formulating and solving large-scale optimization problems. The software extends the modeling approach supported by modern AML (Algebraic Modeling Language) tools. Pyomo is a flexible, extensible, and portable AML that is embedded in Python, a full-featured scripting language. Python is a powerful and dynamic programming language that has a very clear, readable syntax and intuitive object orientation. Pyomo includes Python classes for defining sparse sets, parameters, and variables, which can be used to formulate algebraic expressions that define objectives and constraints. Moreover, Pyomo can be used from a command-line interface and within Python's interactive command environment, which makes it easy to create Pyomo models, apply a variety of optimizers, and examine solutions. Review of the Second edition: This book provides a detailed guide to Pyomo for beginners and advanced users from undergraduate students to academic researchers to practitioners. the book is a good software guide which I strongly recommend to anybody interested in looking for an alternative to commercial modeling languages in general or in learning or intensifying their Pyomo skills in particular. Christina Schenk, SIAM Review, Vol. 61 (1), March 2019.




Mathematical Programming for Power Systems Operation


Book Description

Explore the theoretical foundations and real-world power system applications of convex programming In Mathematical Programming for Power System Operation with Applications in Python, Professor Alejandro Garces delivers a comprehensive overview of power system operations models with a focus on convex optimization models and their implementation in Python. Divided into two parts, the book begins with a theoretical analysis of convex optimization models before moving on to related applications in power systems operations. The author eschews concepts of topology and functional analysis found in more mathematically oriented books in favor of a more natural approach. Using this perspective, he presents recent applications of convex optimization in power system operations problems. Mathematical Programming for Power System Operation with Applications in Python uses Python and CVXPY as tools to solve power system optimization problems and includes models that can be solved with the presented framework. The book also includes: A thorough introduction to power system operation, including economic and environmental dispatch, optimal power flow, and hosting capacity Comprehensive explorations of the mathematical background of power system operation, including quadratic forms and norms and the basic theory of optimization Practical discussions of convex functions and convex sets, including affine and linear spaces, politopes, balls, and ellipsoids In-depth examinations of convex optimization, including global optimums, and first and second order conditions Perfect for undergraduate students with some knowledge in power systems analysis, generation, or distribution, Mathematical Programming for Power System Operation with Applications in Python is also an ideal resource for graduate students and engineers practicing in the area of power system optimization.




Mixed Integer Nonlinear Programming


Book Description

Many engineering, operations, and scientific applications include a mixture of discrete and continuous decision variables and nonlinear relationships involving the decision variables that have a pronounced effect on the set of feasible and optimal solutions. Mixed-integer nonlinear programming (MINLP) problems combine the numerical difficulties of handling nonlinear functions with the challenge of optimizing in the context of nonconvex functions and discrete variables. MINLP is one of the most flexible modeling paradigms available for optimization; but because its scope is so broad, in the most general cases it is hopelessly intractable. Nonetheless, an expanding body of researchers and practitioners — including chemical engineers, operations researchers, industrial engineers, mechanical engineers, economists, statisticians, computer scientists, operations managers, and mathematical programmers — are interested in solving large-scale MINLP instances.




Multiple Criteria Decision Aid


Book Description

Multiple criteria decision aid (MCDA) methods are illustrated in this book through theoretical and computational techniques utilizing Python. Existing methods are presented in detail with a step by step learning approach. Theoretical background is given for TOPSIS, VIKOR, PROMETHEE, SIR, AHP, goal programming, and their variations. Comprehensive numerical examples are also discussed for each method in conjunction with easy to follow Python code. Extensions to multiple criteria decision making algorithms such as fuzzy number theory and group decision making are introduced and implemented through Python as well. Readers will learn how to implement and use each method based on the problem, the available data, the stakeholders involved, and the various requirements needed. Focusing on the practical aspects of the multiple criteria decision making methodologies, this book is designed for researchers, practitioners and advanced graduate students in the applied mathematics, information systems, operations research and business administration disciplines, as well as other engineers and scientists oriented in interdisciplinary research. Readers will greatly benefit from this book by learning and applying various MCDM/A methods. (Adiel Teixeira de Almeida, CDSID-Center for Decision System and Information Development, Universidade Federal de Pernambuco, Recife, Brazil) Promoting the development and application of multicriteria decision aid is essential to ensure more ethical and sustainable decisions. This book is a great contribution to this objective. It is a perfect blend of theory and practice, providing potential users and researchers with the theoretical bases of some of the best-known methods as well as with the computing tools needed to practice, to compare and to put these methods to use. (Jean-Pierre Brans, Vrije Universiteit Brussel, Brussels, Belgium) This book is intended for researchers, practitioners and students alike in decision support who wish to familiarize themselves quickly and efficiently with multicriteria decision aiding algorithms. The proposed approach is original, as it presents a selection of methods from the theory to the practical implementation in Python, including a detailed example. This will certainly facilitate the learning of these techniques, and contribute to their effective dissemination in applications. (Patrick Meyer, IMT Atlantique, Lab-STICC, Univ. Bretagne Loire, Brest, France)