How does Vishnu handle dynamic rescheduling for problems that are continually changing?
The basic approach is that the user/client must drive a loop that continually loads new data into Vishnu and asks the scheduler to derive a new schedule. There are a few features of Vishnu that facilitate the process of dynamic rescheduling. First, there is the ability of Vishnu to handle data updates. This allows the problem not to have to be loaded from scratch each time one piece of data gets updated. Second, there is the capability to specify that certain assignments be frozen. This allows the user to specify that certain past assignments should not be overridden despite future changes to the data. Third, there is the scheduling window. This allows the scheduler to slide its view of the data as time progresses and to accept as frozen assignments in the past. A fourth feature that would be useful (but is not yet implemented) is the ability for a user to specify soft constraints involving schedule stability. This would allow the scheduler to change previously made assignments while s