This self-contained beginning graduate text covers linear and integer programming, polytopes, matroids and matroid optimization, shortest paths, and network flows.