Carathéodory's Theorem
In other words, we have \(x = \sum_{i=1}^{n+1} \lambda_i v_i\) where \(\sum_{i=1}^n \lambda_i = 1\) and \(\lambda_i \ge 0\) for all \(i\). |
Christofides' Algorithm for Metric TSP
Find a minimum spanning tree \(T\) of the graph: this gives connectivity. Then, compute the minimum cost perfect matching on the nodes with odd degree in \(T\): this makes all the vertices even degree. This is a \(\frac{3}{2}\) approximation. |
Convex set
In this class, the primary example of a convex set will be a polyhedron: the intersection of finitely many half-spaces. |
Definition of Approximation Algorithm
A randomized \(\alpha\)-approximation instead produces a solution of expected cost within a factor of \(\alpha\) for every input. |
Ellipsoid method and separation oracle
The ellipsoid method is a polynomial time algorithm that can optimize over any convex set with a separation oracle. (In other words, it can solve any LP whose feasible region is convex and has a separation oracle.) In this course, \(P\) will typically be a convex polyhedron defined by a (possibly exponential size) collection of hyperplanes, and our separation oracle will return one of these hyperplanes. |
Integer Linear Program and Linear Program Relaxation
A natural extension is convex programs. Here we only need the feasible region to be a convex set and the objective function to be convex. |
Integrality Gap
|
Linear algebraic view of a vertex of a polyhedron
It is useful to notice that the subset of rows picked in \(\tilde{A}\) must be tight constraints. |
Metric space
1. \(d(x,x) = 0\) for all \(x \in M\): all points have distance 0 to themselves 2. If \(x \not= y\) then \(d(x,y) > 0\) (although this can be made arbitrarily small so often we allow a distance of 0) 3. \(d(x,y) = d(y,x)\) for all \(x,y \in M\) 4. \(d\) obeys the triangle inequality: \(d(x,z) \le d(x,y) + d(y,z)\) for all \(x,y,z \in M\). A standard example of a metric space is Euclidean space, where points are tuples \((x_1,x_2) \in \mathbb{R}^2\) and \(d((x_1,x_2),(y_1,y_2)) = \sqrt{(x_1-y_1)^2 + (x_2-y_2)^2}\). |
Minimum spanning tree
A minimum spanning tree (MST) can be found using a greedy procedure called Kruskal's algorithm: keep adding the edge with the smallest weight to your MST as long as it does not create a cycle. Stop when every edge creates a cycle, at which point you must have a spanning tree if the original graph was connected. |
PTAS, FPTAS, and APX
A fully polynomial time approximation schme (FPTAS) is a \((1+\epsilon)\)-approximation for a problem that runs in time polynomial in the input size and \(\frac{1}{\epsilon}\). For example, \(\frac{n^3}{\epsilon}\). For maximization problems the \(1+\epsilon\) would be replaced with \(1-\epsilon\). A problem is in APX ("approximable") if it has a constant-factor approximation algorithm. A problem is APX-Hard if it has no PTAS unless P=NP. |
Polyhedron and polytope and their matrix form
We will typically write a polyhedron as the set of points \(x \in \mathbb{R}^n\) obeying the equations \(Ax \ge b\) for some matrix \(A \in \mathbb{R}^{m \times n}\) and vector \(b \in \mathbb{R}^m\). Each row of \(A\) represents one of the halfspaces of the polyhedron. |
Psuedopolynomial time
|
Rank-Nullity Theorem
\[\text{rank}(A) + \text{nullity}(A) = n\]where the rank of a matrix is the maximum number of linearly independent rows (or columns) and the nullity is the maximum number of linearly independent vectors \(x\) for which \(Ax=0\) (in other words, the rank of the null space of \(A\)). |
Relax and round framework
This can also be applied for more general convex programs. |