  In this paper, we propose a model to schedule the next 24 hours of operations
in a bulk cargo port to unload bulk cargo trains onto stockpiles. It is a
problem that includes multiple parts such as splitting long trains into shorter
ones and the routing of bulk material through a configurable network of
conveyors to the stockpiles. Managing such trains (up to three kilometers long)
also requires specialized equipment. The real world nature of the problem
specification implies the necessity to manage heterogeneous data. Indeed, when
new equipment is added (e.g. dumpers) or a new type of wagon comes in use,
older or different equipment will still be in use as well. All these details
need to be accounted for. In fact, avoiding a full deadlock of the facility
after a new but ineffective schedule is produced. In this paper, we provide a
detailed presentation of this real world problem and its associated data. This
allows us to propose an effective constraint programming model to solve this
problem. We also discuss the model design and the different implementations of
the propagators that we used in practice. Finally, we show how this model,
coupled with a large neighborhood search, was able to find 24 hour schedules
efficiently.
