for NP-complete problems (VLSI, biology) in poly time, algo finds a solution that isn’t necessarily optimal but is close to optimal : optimal; : approximate
we want, where is an error bound
first fraction is a minimisation bound, second is a maximisation so if , then we might want
some families of approximation algos
- fixed error bound
- variable error bound: as increases, allowable error can increase too
- trade-off between and time
many approximation algorithms are greedy
basic approximation algo for vertex cover: very simple! pick vertex, erase edges, etc
C = 0, E' = E
while E' != \emptyset
randomly pick (u, v) edge
C = C \cup {u, v}
E' = E' - {edges adjacent to u, v}
we can prove: this gives us not worse than twice the size of the optimal vertex cover
theorem: approximate vertex cover let be selected edges , bc for every edge we include the vertex of the edge , this holds bc vertex cover then