Phase Transitions in Combinatorial Optimization Problems