This document discusses approximation algorithms for NP-complete problems. It begins by explaining why approximation algorithms are useful for problems that are too computationally difficult to solve optimally. It then provides approximation algorithms and analysis for the vertex cover problem, set cover problem, and traveling salesman problem (TSP). For vertex cover, it presents a 2-approximation algorithm. For set cover, it describes a greedy (ln|X|+1)-approximation algorithm. For TSP, it outlines a 2-approximation algorithm based on minimum spanning trees.