Thursday, September 01, 2005

How to deal with a multi-user and relational database environment

Most of the papers I have read, even the ones from OR, related with Crew Recovery or Crew Scheduling problems among others, present the solution having the data represented in a matrix and/or vectors. Unfortunately, most of the environments that exist in the airline companies have the data in relational databases and use multi-user systems. To apply those solutions we need to transfer the data to the proposed representation, apply the algorithm and, then, put the data back in the relational database (supposing that we have enough hardware to support all the information in memory). This seems feasible but what happens if someone or some system changes any of the data used for finding the solution, during the time the algorithm is working? To not allow any change during the time the algorithm is working is not feasible. We have to use algorithms that will be able to be applied to relational databases and, when applying the solutions, we need to check if everything is as before.
Any ideas on how to approach this problem? Please feel free to drop any comments/suggestions using the comments options at the end of this post. Thank you.

1 comment:

Anonymous said...

Notice

You forgot another hipothesis:
Whenever a new input dynamically change relevant data, may be the problem solvers should be notified and, as a consequence of that fact, decide on what to do next:
i) ignore that event and continue trying to reach a solution (probably outdated),
ii) to freeze the problem solving process and trying to take into consideration new data,
ii) to abort current computation and restart a new computation since the beginning, with new data.

In order to do this, agents should have the possibility of multi-threading, paying attention to the environment while computing local solutions and, also, be able to automatically master their own computational process, through a kind of meta-level control layer (which is not too much difficult to implement).

In conclusion, I would say that preventing data from being changed during the solution searching process may not be the cleaverest way of dealing with dynamics... To be aware of it and to react acordingly may be the right thing to do.
However you may analyse these possibilities in the light of the concrete problem in hands.

Eugénio
90oafce