Algorithmic Approaches To Np Completeness