Introduction

Time and models

Time plays an important role in various real-life modeling applications. Typical examples are found in the areas of planning, scheduling, and control. The time scale in control models is typically seconds and minutes. Scheduling models typically refer to hours and days, while the associated time unit in planning models is usually expressed in terms of weeks, months, or even years. To facilitate time-based modeling, AIMMS provides a number of tools to relate model time and calendar time.

Use of time periods

Time-dependent data in a model is usually associated with time periods. Some data items associated with a period index can be interpreted as taking place during the period, while others take place at a particular moment. For instance, the stock in a tank is usually measured at, and associated with, a specific moment in a period, while the flow of material into the tank is usually associated with the entire period.

Use of time as a continuous quantity

Time-dependent data in a model can also represent continuous time values. For instance, consider a parameter containing the starting times of a number of processes. Even though this representation is not ideal for constructing most time-based optimization models, it allows time to be expressed to any desired accuracy.

Calendar periods versus model periods

A large portion of the data in time-dependent models originates from the real world where quantities are specified relative to some calendar. Optimization models usually refer to abstract model periods such as \(p_1\), \(p_2\), \(p_3\), etc., allowing the optimization model to be formulated independent of real time. This common distinction makes it essential that quantities associated with real calendar time can be converted to quantities associated with model periods and vice versa.

Rolling horizon

In many planning and scheduling applications, time-dependent models are solved repeatedly as time passes. Future data becomes present data and eventually becomes past data. Such a moving time span is usually referred to as a “rolling horizon”. By using the various features discussed in this chapter, it is fairly straightforward to implement models with a rolling horizon.

Calendars and Horizons

AIMMS offers two special data types for time-based modeling applications, namely Calendar and Horizon. Both are index sets with special features for dealing with time. Calendars allow you to create a set of time slots of fixed length in real time, while Horizons enable you to distinguish past, planning and beyond periods in your model.

Timetables

In addition, AIMMS offers support for automatically creating timetables (represented through indexed sets) which link model periods in a Horizon to time slots in a Calendar in a flexible manner. Based on a timetable, AIMMS provides functions to let you aggregate data defined over a Calendar to data defined over the corresponding Horizon and vice versa. Fig. 14 illustrates an example of a timetable relating a horizon and a calendar.

../../_images/introduction-pspic11.svg

Fig. 14 Timetable relating calendar and horizon

Explanation

The horizon consists of periods divided into three time blocks, namely a past, the planning interval, and beyond. There is a current period in the horizon which can be linked to a current date in the calendar. The calendar consists of time slots and its range is defined by a begin date and an end date. When you construct your mathematical program, it will typically be in terms of periods in the planning interval of the horizon. However, the input data of the model will typically be in terms of calendar periods. The conversion of calendar data into horizon data and vice versa is done on request by AIMMS in accordance with pre-specified conversion rules.