-
Notifications
You must be signed in to change notification settings - Fork 11
Home
9/26/2018
A review of the architecture we are using for the scheduler and simulator.
Notice the two main sections: the scheduler and the 'world simulator'. It can get a little confusing because the scheduler itself has the ability to 'simulate' a schedule into the future in order to determine whether a schedule is valid. In other words the scheduler uses a simulator to determine whether there are conflicts in the schedule it is generating. It has an uncertainty model which is probabilistic based. It infers the potential for delay from this model and schedules accordingly.
The simulator itself has an uncertainty model that is used to inject delays into the simulation.
Let's consider a simple scheduling problem with no uncertainty.
Here we are considering only departures. The input is a scenario. It is a tuple (aircraft, gate, release_time). Each aircraft is given a predefined route; for example, aircraft Blue is given the route 0 --> 3 --> 4 --> 5, where 5 is the terminal (runway) node. Notice how conflicts arise: if Green and Blue are both released at their specified release_time then they both occupy node 3 at the same time. In this simple model, that is the definition of conflict: two aircraft occupying the same node at the same time. The scheduler resolves conflict through delaying one of the aircraft.