A cutting plane algorithm for the capacitated facility location problem