  The modern machine learning methods allow one to obtain the data-driven
models in various ways. However, the more complex the model is, the harder it
is to interpret. In the paper, we describe the algorithm for the mathematical
equations discovery from the given observations data. The algorithm combines
genetic programming with the sparse regression.
  This algorithm allows obtaining different forms of the resulting models. As
an example, it could be used for governing analytical equation discovery as
well as for partial differential equations (PDE) discovery.
  The main idea is to collect a bag of the building blocks (it may be simple
functions or their derivatives of arbitrary order) and consequently take them
from the bag to create combinations, which will represent terms of the final
equation. The selected terms pass to the evolutionary algorithm, which is used
to evolve the selection. The evolutionary steps are combined with the sparse
regression to pick only the significant terms. As a result, we obtain a short
and interpretable expression that describes the physical process that lies
beyond the data.
  In the paper, two examples of the algorithm application are described: the
PDE discovery for the metocean processes and the function discovery for the
acoustics.
