How does it work?
Quite often we have to deal with complex systems in which interaction between many entities (objects, agents) lead to emerging phenomena which are difficult to predict and manage. Examples of such systems are:
road traffic, where many agents (drivers, (self-driving) cars, pedestrians) interact which lead to traffic jams and collissions
living organism (interaction between living cells and chemical substances may lead to, e.g., tumor development or thinking)
stock market (interaction between investors may lead to "financial bubbles" or stock market crash)
society (interaction between people may lead to emerging phenomena such as wars)
In many cases we would like to manage such processes properly in order to optimize them or prevent undesired states. However, it is difficult to evaluate how different control strategies impact the given process and whether applying such a strategy may really lead to a good state. For example, it is difficult to say what may be a long-term impact of a given traffic signal setting on road traffic conditions, or what may be the impact of a given radiotherapy strategy on the cancer growth. It is even more difficult to find the best control strategy, e.g., the best traffic signal setting or the best radiotherapy protocol. Even if we have an accurate mathematical model describing the given process (which in many cases is very difficult to obtain due to nondeterminism or sensitivity on initial conditions), finding the best control strategy may be an NP-hard problem, so it may be computationally demanding.
However, instead of searching for a single best strategy, we may try to find a heuristically-optimal strategy, which may be a bit worse, but not much, and may be much easier (faster) to find. In case of many such problems, we can use metaheuristics, which are particularly good in solving combinatorial optimization problems, or gradient descent, which is good for differentiable problems. Then, one of the major issues is to evaluate the considered settings relatively fast, which is often a computational challenge.
We solve this problem by applying surrogate models based on machine learning: once we have (computationally demanding) simulation models of a given phenomenon, we can train machine learning models to approximate the outcomes of simulations very fast (in our case: a few orders of magnitude faster than in case of a simulation!) and with a good accuracy (in our case: with a relative error at the level of 1-2%). To do that, we apply advanced techniques such as graph neural networks and LightGBM. So far, we have developed and tested these methods in case of optimizing traffic signal settings and optimizing cancer treatment and the results are very good. You can check the details in our scientific publications and presentations.