Practical Python AI Projects: Mathematical Models of Optimization Problems with Google OR-Tools

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Discover the art and science of solving artificial intelligence problems with Python using optimization modeling. This book covers the practical creation and analysis of mathematical algebraic models such as linear continuous models, non-obviously linear continuous models,and pure linear integer models. Rather than focus on theory, Practical Python AI Projects, the product of the author's decades of industry teaching and consulting, stresses the model creation aspect; contrasting alternate approaches and practical variations.
Each model is explained thoroughly and written to be executed. The source code from all examples in the book is available, written in Python using Google OR-Tools. It also includes a random problem generator, useful for industry application or study.
What You Will Learn
  • Build basic Python-based artificial intelligence (AI) applications 
  • Work with mathematical optimization methods and the Google OR-Tools (Optimization Tools) suite
  • Create several types of projects using Python and Google OR-Tools

Who This Book Is For

Developers and students who already have prior experience in Python coding. Some prior mathematical experience or comfort level may be helpful as well.  

Author(s): Serge Kruk
Edition: 1
Publisher: Apress
Year: 2018

Language: English
Pages: 292

Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Chapter 1: Introduction
1.1 What Is This Book About?
1.2 Features of the Text
1.2.1 Running the Models
1.2.2 A Note on Notation
1.3 Getting Our Feet Wet: Amphibian Coexistence
Chapter 2: Linear Continuous Models
2.1 Mixing
2.1.1 Constructing a Model
2.1.2 Variations
2.1.3 Structure of the Problems Under Consideration
2.2 Blending
2.2.1 Constructing a Model
2.2.2 Variations
2.3 Project Management
2.3.1 Constructing a Model
2.3.2 Variations
2.3.2.1 Minimax Problems
2.3.2.2 Absolute Value Problems
2.4 Multi-Stage Models
2.4.1 Problem Instance
2.4.2 Constructing a Model
2.4.2.1 Decision variables
2.4.2.2 Constraints
2.4.2.3 Objective Function
2.4.2.4 Executable Model
2.4.3 Variations
2.5 Pattern Classification
2.5.1 Constructing a Model
2.5.2 Executable Model
2.5.2.1 Variations
Chapter 3: Hidden Linear Continuous Models
3.1 Piecewise Linear
3.1.1 Constructing a Model
3.1.1.1 Constraints
3.1.1.2 Objective
3.1.1.3 Executable Model
3.1.2 Variations
3.1.2.1 Non-Linear Function Minimization via Linear Approximations
3.1.2.2 Non-Convex Piecewise Linear
3.2 Curve Fitting
3.2.1 Constructing a Model
3.2.1.1 Objective Function
3.2.1.2 Constraints
3.2.1.3 Executable Model
3.2.2 Variations
3.3 Pattern Classification Revisited
3.3.1 Executable Model
Chapter 4: Linear Network Models
4.1 Maximum Flow
4.1.1 Constructing a Model
4.1.2 Decision Variables
4.1.2.1 Objective
4.1.2.2 Constraints
4.1.2.3 Executable Model
4.1.3 Variations
4.2 Minimum Cost Flow
4.2.1 Constructing a Model
4.2.1.1 Decision Variables
4.2.1.2 Objective
4.2.1.3 Constraints
4.2.1.4 Executable Model
4.2.2 Variations
4.3 Transshipment
4.3.1 Constructing a Model
4.3.1.1 Objective
4.3.1.2 Constraints
4.3.1.3 Executable Model
4.3.2 Variations
4.4 Shortest Paths
4.4.1 Constructing a Model
4.4.2 Alternate Algorithms
4.4.3 Variations
Chapter 5: Classic Discrete Models
5.1 Minimum Set Cover
5.1.1 Constructing a Model
5.1.1.1 Decision Variables
5.1.1.2 Objective
5.1.1.3 Constraints
5.1.1.4 Executable Model
5.1.2 Variations
5.2 Set Packing
5.2.1 Constructing a Model
5.2.1.1 Decision Variables
5.2.1.2 Objective
5.2.1.3 Constraints
5.2.1.4 Executable Model
5.2.2 Variations
5.3 Bin Packing
5.3.1 Constructing a Model
5.3.1.1 Decision Variables
5.3.1.2 Constraints
5.3.1.3 Objective
5.3.1.4 Executable Model
5.3.1.5 Variations
5.4 TSP
5.4.1 Constructing a Model
5.4.1.1 Decision Variables
5.4.1.2 Objective
5.4.1.3 Constraints
5.4.1.4 Executable Model
5.4.2 Variations
Chapter 6: Classic Mixed Models
6.1 Facility Location
6.1.1 Constructing a Model
6.1.1.1 Decision Variables
6.1.1.2 Objective
6.1.1.3 Constraints
6.1.1.4 Executable Model
6.1.2 Variations
6.2 Multi-Commodity Flow
6.2.1 Constructing a Model
6.2.1.1 Decision Variables
6.2.1.2 Objective
6.2.1.3 Constraints
6.2.1.4 Executable Model
6.2.2 Variations
6.2.2.1 All-Pairs Shortest Paths (Revisited)
6.2.3 Instances
6.3 Staffing Level
6.3.1 Constructing a Model
6.3.1.1 Decision Variables
6.3.1.2 Objective
6.3.1.3 Constraints
6.3.1.4 Executable Model
6.3.2 Variations
6.4 Job Shop Scheduling
6.4.1 Constructing a Model
6.4.1.1 Executable Model
Chapter 7: Advanced Techniques
7.1 Cutting Stock
7.1.1 Constructing a Model
7.1.1.1 Decision Variables
7.1.1.2 Objective
7.1.1.3 Constraints
7.1.1.4 Executable Model
7.1.2 Pre-Allocate Cutting Patterns
7.2 Non-Convex Trickery
7.2.1 Selecting k Variables Out of n to Be Non-Zero
7.2.2 Selecting k Adjacent Variables Out of n to Be Non-Zero
7.2.3 Selecting k Constraints Out of n
7.2.4 Maximax and Minimin
7.3 Staff Scheduling
7.3.1 Constructing a Model
7.3.1.1 Decision Variables
7.3.1.2 Constraints
7.3.1.3 Objective
7.3.1.4 Executable Model
7.3.2 Variations
7.4 Sports Timetabling
7.4.1 Constructing a Model
7.4.1.1 Decision Variables
7.4.1.2 Constraints
7.4.1.3 Objective Function
7.4.1.4 Executable Model
7.4.2 Variations
7.5 Puzzles
7.5.1 Pseudo-Chess Problems
7.5.2 Sudoku
7.5.3 Send More Money!
7.5.4 Ladies and Tigers
7.6 Quick Reference for OR-Tools MPSolver in Python
Index