Our client organizes meetings between two groups of people, investors and companies within the framework of events. Typically, investors request meetings with companies. They confirm the request and the meeting can be scheduled.
At first glance, the problem seems easy to solve:
- An investor can choose a suitable time for the meeting. Once the meeting is approved, it is set. In practice, it is not that simple: not every meeting is accepted. (On average, every second meeting is rejected.) This does not happen immediately, but often only days after it has been requested. Until then, however, the time for the request will have to be kept free.
- If the investor is free to choose the time for the meeting, uncomfortable off-peak times often remain free. For companies, this means significantly fewer meetings than actually possible.
- Often there are not as many rooms as companies, so rooms must be blocked until requests are accepted.
The goal is to organize as many meetings as possible for the companies and thus use their time as efficiently as possible. The existing rooms should also be used as well as possible.
We have therefore developed the following solution together with the customer:
- Instead of directly setting times for meetings, companies and investors can define times when they are available.
- Requests are recorded and confirmed or rejected by companies.
- Only after the requests have been confirmed, possible times and available rooms for the requests are selected. Either immediately, once a day, or manually, and these are recorded as meetings. This process takes place asynchronously, so neither companies nor investors have to wait. Thus even complex calculations are possible.
A genetic algorithm is used for meeting planning. It starts with randomly selected times and rooms and improves them in iterations. The quality of a plan is influenced by the a number of factors. For example:
- Obviously companies and investors must not have parallel meetings and the selected room must not be occupied.
- Likewise, the chosen time must be within the availability of the investor and the company.
- If possible, companies should not have to change rooms between meetings.
- Companies should have defined breaks (or if possible no break) between two meetings. Meetings should be planned without idle time.
In the course of time, more optimization possibilities have become apparent, which can be taken into account without any problems.
The software for companies, investors, and also the administration interface have been implemented as web applications with PHP and MySQL. For the genetic algorithm, the core of the meeting planning, we did not find a suitable library for PHP and therefore wrote our own implementation.
Our library naturally follows the principles of object-oriented programming. Currently an algorithm based on NSGA-II is implemented for the actual optimization. It can consider either one or more objective functions (Objectives). As examples, a path search with obstacles and an offline stock broker were implemented.
We are happy to help you with your (multidimensional) optimization problem. We have the necessary experience to quickly come to efficient and satisfying solutions with you.