A mathematical programming approach for the solution of the railway yield management problem