  This tutorial is an andragogical guide for students and practitioners seeking
to understand the fundamentals and practice of linear programming. The
exercises demonstrate how to solve classical optimization problems with an
emphasis on spatial analysis in supply chain management and transport
logistics. All exercises display the Python programs and optimization libraries
used to solve them. The first chapter introduces key concepts in linear
programming and contributes a new cognitive framework to help students and
practitioners set up each optimization problem. The cognitive framework
organizes the decision variables, constraints, the objective function, and
variable bounds in a format for direct application to optimization software.
The second chapter introduces two types of mobility optimization problems
(shortest path in a network and minimum cost tour) in the context of delivery
and service planning logistics. The third chapter introduces four types of
spatial optimization problems (neighborhood coverage, flow capturing, zone
heterogeneity, service coverage) and contributes a workflow to visualize the
optimized solutions in maps. The workflow creates decision variables from maps
by using the free geographic information systems (GIS) programs QGIS and GeoDA.
The fourth chapter introduces three types of spatial logistical problems
(spatial distribution, flow maximization, warehouse location optimization) and
demonstrates how to scale the cognitive framework in software to reach
solutions. The final chapter summarizes lessons learned and provides insights
about how students and practitioners can modify the Phyton programs and GIS
workflows to solve their own optimization problem and visualize the results.
