Mathematical programming time-based decomposition algorithm for discrete event simulation