Service Restoration Based on Dynamic Programming