Using heuristics and approximation algorithms