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