Representation of time in mathematical programming modeling languages

Time-staged mathematical programming models have a planning horizon that is divided into a sequence of consecutive time periods. For the modeling of this sequence of time periods the use of calendars is proposed as an additional set concept for mathematical programming modeling languages. The definition of calendars is based on familiar notions such as set, ordering, interval length and functions. A calendar is an interval set and can be used to verify automatically the proper time referencing in stock balances. When a calendar is also a difference set, then backward and forward time referencing can be stated with the explicit use of time units. For models with a rolling horizon, concise and flexible ways to specify the structure of calendars are presented. The aggregation of raw data into model parameter values is supported by linking calendars that represent different time scales. The influence of the proposed calendar concept on the human ability to understand, maintain and verify models is analyzed throughout the paper on the basis of selected examples.