Discrete time model and algorithms for container yard crane scheduling