0% found this document useful (0 votes)
1 views4 pages

Content Discrete

The document is a course outline for Discrete Optimization taught by Thomas Rothvoss in Spring 2015. It covers various topics including algorithms, complexity theory, graph theory, network flows, linear programming, and specific problems like the traveling salesperson and knapsack problems. The content is structured into sections with detailed subtopics and algorithms relevant to discrete optimization.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views4 pages

Content Discrete

The document is a course outline for Discrete Optimization taught by Thomas Rothvoss in Spring 2015. It covers various topics including algorithms, complexity theory, graph theory, network flows, linear programming, and specific problems like the traveling salesperson and knapsack problems. The content is structured into sections with detailed subtopics and algorithms relevant to discrete optimization.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Discrete Optimization

Spring 2015

Thomas Rothvoss

A
C

Last changes: May 27, 2015


2
Contents

1 Introduction to Discrete Optimization 5


1.1 Algorithms and Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Complexity theory and NP-hardness . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Basic Graph Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 The traveling salesperson problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Minimum spanning trees 13


2.1 Kruskal’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Shortest paths 19
3.1 Dijkstra’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 The Moore-Bellman-Ford Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Detecting negative cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Network flows 29
4.1 The Ford-Fulkerson algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Min Cut problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 The Edmonds-Karp algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1 Some remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Application to bipartite matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4.1 Kőnig’s Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.4.2 Hall’s Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5 Linear programming 43
5.1 Separation, Duality and Farkas Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Algorithms for linear programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2.1 The simplex method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2.2 Interior point methods and the Ellipsoid method . . . . . . . . . . . . . . . . 50
5.2.3 The multiplicative weights update method . . . . . . . . . . . . . . . . . . . . 50
5.3 Connection to discrete optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.4 Integer programs and integer hull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6 Total unimodularity 59
6.1 Application to bipartite matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2 Application to flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.3 Application to interval scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3
7 Branch & Bound 67
7.1 A pathological instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8 Non-bipartite matching 73
8.1 Augmenting paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.2 Computing augmenting paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.3 Contracting odd cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

9 The Knapsack problem 79


9.1 A dynamic programming algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.2 An approximation algorithm for Knapsack . . . . . . . . . . . . . . . . . . . . . . . . 81

You might also like