Pyomo -- optimization modeling in Python /
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...
Main Authors: | , |
---|---|
Other Authors: | , , , , , , |
Format: | Book |
Language: | English |
Published: |
Cham :
Springer,
2021
Cham, Switzerland : [2021] |
Edition: | 3rd ed |
Series: | Springer optimization and its applications ;
Volume 67 Springer optimization and its applications ; v. 67 |
Subjects: |
LEADER | 17422nam a2201249 i 4500 | ||
---|---|---|---|
001 | 967ec6c8-8df0-4345-bd71-65c96d0a3966 | ||
005 | 20240811000000.0 | ||
008 | 211015s2021 sz o 000 0 eng d | ||
019 | |a 1244535603 |a 1246552786 |a 1253404100 |a 1256678498 | ||
020 | |a 3-030-68928-X | ||
020 | |a 303068928X |q (electronic bk.) | ||
020 | |a 3030689298 | ||
020 | |a 3030689301 | ||
020 | |a 9783030689285 |q (electronic bk.) | ||
020 | |a 9783030689292 |q (print) | ||
020 | |a 9783030689308 |q (print) | ||
020 | |z 3030689271 | ||
020 | |z 9783030689278 |q (print) | ||
024 | 7 | |a 10.1007/978-3-030-68928-5 |2 doi | |
035 | |a (Au-PeEL)EBL6531628 | ||
035 | |a (CKB)5590000000442451 | ||
035 | |a (EXLCZ)995590000000442451 | ||
035 | |a (MiAaPQ)EBC6531628 | ||
035 | |a (OCoLC)1244620167 |z (OCoLC)1244535603 |z (OCoLC)1246552786 |z (OCoLC)1253404100 |z (OCoLC)1256678498 |z (OCoLC)1281382014 |z (OCoLC)1284939619 | ||
035 | |a (OCoLC)1244620167 |z (OCoLC)1244535603 |z (OCoLC)1246552786 |z (OCoLC)1253404100 |z (OCoLC)1256678498 | ||
035 | |a (OCoLC)1244620167 | ||
035 | |a (PPN)254720099 | ||
035 | 9 | |a (OCLCCM-CC)1244620167 | |
040 | |a EBLCP |b eng |c EBLCP |d GW5XE |d FIE |d YDX |d OCLCO |d EBLCP |d OCLCF |d VT2 |d LIP |d UKAHL | ||
040 | |a EBLCP |b eng |e pn |c EBLCP |d GW5XE |d FIE |d YDX |d OCLCO |d EBLCP |d OCLCF |d VT2 |d LIP |d UKAHL |d OCLCQ |d OCLCO |d COM |d OCLCO |d CSt | ||
040 | |a MiAaPQ |b eng |e rda |e pn |c MiAaPQ |d MiAaPQ | ||
049 | |a MAIN | ||
050 | 4 | |a QA76.9.C65 |b .B968 2021 | |
050 | 4 | |a QA76.9.C65 | |
072 | 7 | |a MAT003000 |2 bisacsh | |
072 | 7 | |a PBU |2 bicssc | |
072 | 7 | |a PBU |2 thema | |
082 | 0 | |a 003.3 |2 23 | |
082 | 0 | 4 | |a 003/.3 |2 23 |
100 | 1 | |a Bynum, Michael L |? UNAUTHORIZED | |
100 | 1 | |a Bynum, Michael L | |
100 | 1 | |a Bynum, Michael L., |e author | |
245 | 1 | 0 | |a Pyomo -- optimization modeling in Python / |c Michael L. Bynum, Gabriel A. Hackebeil, William E. Hart, Carl D. Laird, Bethany L. Nicholson, John D. Siirola, Jean-Paul Watson, David L. Woodruff |
250 | |a 3rd ed | ||
260 | |a Cham : |b Springer, |c 2021 | ||
264 | 1 | |a Cham, Switzerland : |b Springer, |c [2021] | |
264 | 4 | |c ©2021 | |
300 | |a 1 online resource (231 p.) | ||
300 | |a 1 online resource (231 pages) | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
347 | |a text file |b PDF |2 rda | ||
347 | |a text file | ||
347 | |b PDF | ||
490 | 1 | |a Springer Optimization and Its Applications ; |v Volume 67 | |
490 | 1 | |a Springer Optimization and Its Applications ; |v v. 67 | |
500 | |a 7.3 Solving Nonlinear Programming Formulations | ||
500 | |a Description based upon print version of record | ||
504 | |a Includes bibliographical references and index | ||
505 | 0 | |a Intro -- Preface -- Goals of the Book -- Who Should Read This Book -- Revisions for the Third Edition -- Acknowledgments -- Disclaimers -- Comments and Questions -- Contents -- Chapter 1 Introduction -- 1.1 Modeling Languages for Optimization -- 1.2 Modeling with Pyomo -- 1.2.1 Simple Examples -- 1.2.2 Graph Coloring Example -- 1.2.3 Key Pyomo Features -- Python -- Customizable Capability -- Command-Line Tools and Scripting -- Concrete and Abstract Model Definitions -- Object-Oriented Design -- Expressive Modeling Capability -- Solver Integration -- Open Source -- 1.3 Getting Started -- 1.4 Book Summary -- 1.5 Discussion -- Part I An Introduction to Pyomo -- Chapter 2 Mathematical Modeling and Optimization -- 2.1 Mathematical Modeling -- 2.1.1 Overview -- 2.1.2 A Modeling Example -- 2.2 Optimization -- 2.3 Modeling with Pyomo -- 2.3.1 A Concrete Formulation -- 2.4 Linear and Nonlinear Optimization Models -- 2.4.1 Definition -- 2.4.2 Linear Version -- 2.5 Solving the Pyomo Model -- 2.5.1 Solvers -- 2.5.2 Python Scripts -- Chapter 3 Pyomo Overview -- 3.1 Introduction -- 3.2 The Warehouse Location Problem -- 3.3 Pyomo Models -- 3.3.1 Components for Variables, Objectives, and Constraints -- 3.3.2 Indexed Components -- 3.3.3 Construction Rules -- 3.3.4 A Concrete Model for the Warehouse Location Problem -- 3.3.5 Modeling Components for Sets and Parameters -- Chapter 4 Pyomo Models and Components: An Introduction -- 4.1 An Object-Oriented AML -- 4.2 Common Component Paradigms -- 4.2.1 Indexed Components -- 4.3 Variables -- 4.3.1 Var Declarations -- 4.3.2 Working with Var Objects -- 4.4 Objectives -- 4.4.1 Objective Declarations -- 4.4.2 Working with Objective Objects -- 4.5 Constraints -- 4.5.1 Constraint Declarations -- 4.5.2 Working with Constraint Objects -- 4.6 Set Data -- 4.6.1 Set Declarations -- 4.6.2 Working with Set Objects | |
505 | 0 | |a Intro -- Preface -- Goals of the Book -- Who Should Read This Book -- Revisions for the Third Edition -- Acknowledgments -- Disclaimers -- Comments and Questions -- Contents -- Chapter 1 Introduction -- 1.1 Modeling Languages for Optimization -- 1.2 Modeling with Pyomo -- 1.2.1 Simple Examples -- 1.2.2 Graph Coloring Example -- 1.2.3 Key Pyomo Features -- Python -- Customizable Capability -- Command-Line Tools and Scripting -- Concrete and Abstract Model Definitions -- Object-Oriented Design -- Expressive Modeling Capability -- Solver Integration -- Open Source -- 1.3 Getting Started | |
505 | 8 | |a 1.4 Book Summary -- 1.5 Discussion -- Part I An Introduction to Pyomo -- Chapter 2 Mathematical Modeling and Optimization -- 2.1 Mathematical Modeling -- 2.1.1 Overview -- 2.1.2 A Modeling Example -- 2.2 Optimization -- 2.3 Modeling with Pyomo -- 2.3.1 A Concrete Formulation -- 2.4 Linear and Nonlinear Optimization Models -- 2.4.1 Definition -- 2.4.2 Linear Version -- 2.5 Solving the Pyomo Model -- 2.5.1 Solvers -- 2.5.2 Python Scripts -- Chapter 3 Pyomo Overview -- 3.1 Introduction -- 3.2 The Warehouse Location Problem -- 3.3 Pyomo Models | |
505 | 8 | |a 12.3.1 Finite Difference Transformation -- 12.3.2 Collocation Transformation -- 12.4 Additional Features -- 12.4.1 Applying Multiple Discretizations -- 12.4.2 Restricting Control Input Profiles -- 12.4.3 Plotting -- Chapter 13 Mathematical Programs with Equilibrium Constraints -- 13.1 Introduction -- 13.2 Modeling Equilibrium Conditions -- 13.2.1 Complementarity Conditions -- 13.2.2 Complementarity Expressions -- 13.2.3 Modeling Mixed-Complementarity Conditions -- 13.3 MPEC Transformations -- 13.3.1 Standard Form -- 13.3.2 Simple Nonlinear -- 13.3.3 Simple Disjunction -- 13.3.4 AMPL Solver Interface -- 13.4 Solver Interfaces and Meta-Solvers -- 13.4.1 Nonlinear Reformulations -- 13.4.2 Disjunctive Reformulations -- 13.4.3 PATH and the ASL Solver Interface -- 13.5 Discussion -- Appendix A A Brief Python Tutorial -- A.1 Overview -- A.2 Installing and Running Python -- A.3 Python Line Format -- A.4 Variables and Data Types -- A.5 Data Structures -- A.5.1 Strings -- A.5.2 Lists -- A.5.3 Tuples -- A.5.4 Sets -- A.5.5 Dictionaries -- A.6 Conditionals -- A.7 Iterations and Looping -- A.8 Generators and List Comprehensions -- A.9 Functions -- A.10 Objects and Classes -- A.11 Assignment, copy and deepcopy -- A.11.1 References -- A.11.2 Copying -- A.12 Modules -- A.13 Python Resources -- Bibliography -- Index | |
505 | 8 | |a 3.3.1 Components for Variables, Objectives, and Constraints -- 3.3.2 Indexed Components -- 3.3.3 Construction Rules -- 3.3.4 A Concrete Model for the Warehouse Location Problem -- 3.3.5 Modeling Components for Sets and Parameters -- Chapter 4 Pyomo Models and Components: An Introduction -- 4.1 An Object-Oriented AML -- 4.2 Common Component Paradigms -- 4.2.1 Indexed Components -- 4.3 Variables -- 4.3.1 Var Declarations -- 4.3.2 Working with Var Objects -- 4.4 Objectives -- 4.4.1 Objective Declarations -- 4.4.2 Working with Objective Objects -- 4.5 Constraints -- 4.5.1 Constraint Declarations | |
505 | 8 | |a 4.5.2 Working with Constraint Objects -- 4.6 Set Data -- 4.6.1 Set Declarations -- 4.6.2 Working with Set Objects -- 4.7 Parameter Data -- 4.7.1 Param Declarations -- 4.7.2 Working with Param Objects -- 4.8 Named Expressions -- 4.8.1 Expression Declarations -- 4.8.2 Working with Expression Objects -- 4.9 Suffix Components -- 4.9.1 Suffix Declarations -- 4.9.2 Working with Suffixes -- 4.10 Other Modeling Components -- Chapter 5 Scripting Custom Workflows -- 5.1 Introduction -- 5.2 Interrogating the Model -- 5.2.1 The The value Function -- 5.2.2 Accessing Attributes of Indexed Components | |
505 | 8 | |a 4.7 Parameter Data -- 4.7.1 Param Declarations -- 4.7.2 Working with Param Objects -- 4.8 Named Expressions -- 4.8.1 Expression Declarations -- 4.8.2 Working with Expression Objects -- 4.9 Suffix Components -- 4.9.1 Suffix Declarations -- 4.9.2 Working with Suffixes -- 4.10 Other Modeling Components -- Chapter 5 Scripting Custom Workflows -- 5.1 Introduction -- 5.2 Interrogating the Model -- 5.2.1 The The value Function -- 5.2.2 Accessing Attributes of Indexed Components -- 5.2.2.1 Slicing Over Indices of Components -- 5.2.2.2 Iterating Over All Var Objects on a Model -- 5.3 Modifying Pyomo Model Structure -- 5.4 Examples of Common Scripting Tasks -- 5.4.1 Warehouse Location Loop and Plotting -- 5.4.2 A Sudoku Solver -- Chapter 6 Interacting with Solvers -- 6.1 Introduction -- 6.2 Using Solvers -- 6.3 Investigating the Solution -- 6.3.1 Solver Results -- Part II Advanced Topics -- Chapter 7 Nonlinear Programming with Pyomo -- 7.1 Introduction -- 7.2 Nonlinear Progamming Problems in Pyomo -- 7.2.1 Nonlinear Expressions -- 7.2.2 The Rosenbrock Problem -- 7.3 Solving Nonlinear Programming Formulations -- 7.3.1 Nonlinear Solvers -- 7.3.2 Additional Tips for Nonlinear Programming -- Variable Initialization -- Undefined Evaluations -- Model Singularities and Problem Scaling -- 7.4 Nonlinear Programming Examples -- 7.4.1 Variable Initialization for a Multimodal Function -- 7.4.2 Optimal Quotas for Sustainable Harvesting of Deer -- 7.4.3 Estimation of Infectious Disease Models -- 7.4.4 Reactor Design -- Chapter 8 Structured Modeling with Blocks -- 8.1 Introduction -- 8.2 Block structures -- 8.3 Blocks as Indexed Components -- 8.4 Construction Rules within Blocks -- 8.5 Extracting values from hierarchical models -- 8.6 Blocks Example: Optimal Multi-Period Lot-Sizing -- 8.6.1 A Formulation Without Blocks -- 8.6.2 A Formulation With Blocks | |
505 | 8 | |a 5.2.2.1 Slicing Over Indices of Components -- 5.2.2.2 Iterating Over All Var Objects on a Model -- 5.3 Modifying Pyomo Model Structure -- 5.4 Examples of Common Scripting Tasks -- 5.4.1 Warehouse Location Loop and Plotting -- 5.4.2 A Sudoku Solver -- Chapter 6 Interacting with Solvers -- 6.1 Introduction -- 6.2 Using Solvers -- 6.3 Investigating the Solution -- 6.3.1 Solver Results -- Part II Advanced Topics -- Chapter 7 Nonlinear Programming with Pyomo -- 7.1 Introduction -- 7.2 Nonlinear Progamming Problems in Pyomo -- 7.2.1 Nonlinear Expressions -- 7.2.2 The Rosenbrock Problem | |
505 | 8 | |a Chapter 9 Performance: Model Construction and Solver Interfaces -- 9.1 Profiling to Identify Performance Bottlenecks -- 9.1.1 Report Timing -- 9.1.2 TicTocTimer -- 9.1.3 Profilers -- 9.2 Improving Model Construction Performance with LinearExpression -- 9.3 Repeated Solves with Persistent Solvers -- 9.3.1 When to Use a Persistent Solver -- 9.3.2 Basic Usage -- 9.3.3 Working with Indexed Variables and Constraints -- 9.3.4 Additional Performance -- 9.3.5 Example -- 9.4 Sparse Index Sets -- Chapter 10 Abstract Models and Their Solution -- 10.1 Overview -- 10.1.1 Abstract and Concrete Models -- 10.1.2 An Abstract Formulation of Model (H) -- 10.1.3 An Abstract Model for the Warehouse Location Problem -- 10.2 The pyomo Command -- 10.2.1 The help Subcommand -- 10.2.2 The solve Subcommand -- 10.2.2.1 Specifying the Model Object -- 10.2.2.2 Selecting Data with Namespaces -- 10.2.2.3 Customizing Pyomo's Workflow -- 10.2.2.4 Customizing Solver Behavior -- 10.2.2.5 Analyze Solver Results -- 10.2.2.6 Managing Diagnostic Output -- 10.2.3 The convert Subcommand -- 10.3 Data Commands for Abstract Model -- 10.3.1 The set Command -- 10.3.1.1 Simple Sets -- 10.3.1.2 Sets of Tuple Data -- 10.3.1.3 Set Arrays -- 10.3.2 The param Command -- 10.3.2.1 One-dimensional Parameter Data -- 10.3.2.2 Multi-Dimensional Parameter Data -- 10.3.3 The include Command -- 10.3.4 Data Namespaces -- 10.4 Build Components -- Part III Modeling Extensions -- Chapter 11 Generalized Disjunctive Programming -- 11.1 Introduction -- 11.2 Modeling GDP in Pyomo -- 11.3 Expressing logical constraints -- 11.4 Solving GDP models -- 11.4.1 Big-M transformation -- 11.4.2 Hull transformation -- 11.5 A mixing problem with semi-continuous variables -- Chapter 12 Differential Algebraic Equations -- 12.1 Introduction -- 12.2 Pyomo DAE Modeling Components -- 12.3 Solving Pyomo Models with DAEs | |
520 | |a 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 | ||
588 | |a Description based on print version record | ||
588 | 0 | |a Print version record | |
596 | |a 22 | ||
650 | 0 | |a Computer simulation | |
650 | 0 | |a Mathematical optimization |x Computer simulation | |
650 | 0 | |a Python (Computer program language) | |
650 | 2 | |a Computer Simulation | |
650 | 6 | |a Optimisation mathématique |x Simulation par ordinateur | |
650 | 6 | |a Python (Langage de programmation) | |
650 | 6 | |a Simulation par ordinateur | |
650 | 7 | |a Computer simulation |2 fast | |
650 | 7 | |a Optimització matemàtica |2 thub | |
650 | 7 | |a Python (Computer program language) |2 fast | |
650 | 7 | |a Python (Llenguatge de programació) |2 thub | |
650 | 7 | |a Simulació per ordinador |2 thub | |
650 | 7 | |a simulation |2 aat | |
655 | 0 | |a Electronic books | |
655 | 4 | |a Electronic books | |
655 | 7 | |a Llibres electrònics |2 thub | |
700 | 1 | |a Hackebeil, Gabriel A |? UNAUTHORIZED | |
700 | 1 | |a Hackebeil, Gabriel A | |
700 | 1 | |a Hart, William E | |
700 | 1 | |a Laird, Carl D | |
700 | 1 | |a Nicholson, Bethany L |? UNAUTHORIZED | |
700 | 1 | |a Nicholson, Bethany L | |
700 | 1 | |a Siirola, John D |q (John Daniel) | |
700 | 1 | |a Watson, Jean-Paul | |
700 | 1 | |a Woodruff, David L | |
776 | |z 3-030-68927-1 | ||
776 | 0 | 8 | |i Print version: |a Bynum, Michael L |t Pyomo -- Optimization Modeling in Python |d Cham : Springer International Publishing AG,c2021 |z 9783030689278 |
776 | 0 | 8 | |i Print version: |a Bynum, Michael L |t Pyomo -- Optimization Modeling in Python. |d Cham : Springer International Publishing AG, ©2021 |z 9783030689278 |
830 | 0 | |a Springer optimization and its applications ; |v Volume 67 | |
830 | 0 | |a Springer optimization and its applications ; |v v. 67 | |
999 | 1 | 0 | |i 967ec6c8-8df0-4345-bd71-65c96d0a3966 |l a13855980 |s US-CST |m pyomo_optimization_modeling_in_python______________________________________2021____3__sprina________________________________________bynum__michael_l___________________e |
999 | 1 | 0 | |i 967ec6c8-8df0-4345-bd71-65c96d0a3966 |l 12611769 |s US-ICU |m pyomo_optimization_modeling_in_python______________________________________2021____3__sprina________________________________________bynum__michael_l___________________e |
999 | 1 | 0 | |i 967ec6c8-8df0-4345-bd71-65c96d0a3966 |l 99119494000508501 |s US-NCD |m pyomo_optimization_modeling_in_python______________________________________2021____3__sprina________________________________________bynum__michael_l___________________e |
999 | 1 | 1 | |l a13855980 |s ISIL:US-CST |t BKS |a SUL INTERNET |b 13855980-1001 |c INTERNET RESOURCE |d ASIS |x SUL |y 13855980-1001 |p UNLOANABLE |