esa / pagmo2

A C++ platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
https://esa.github.io/pagmo2/
GNU General Public License v3.0
823 stars 161 forks source link

Please make an example for dummies #325

Open stabilus opened 5 years ago

stabilus commented 5 years ago

I am entering the subject as a non mathematician and non data scientist. I'm a potential user of your code who is looking to solve actual down to earth practical problems. While your code apparently beautifully includes a multitude of problems and algorithms, they are really wasted on me as I simply don't get the math, the lingo or the examples.

I therefore suggest you provide a few practical examples of how your code could be put to use, i.e:

just to name a few. Seeing how you implement (or even just define the world - the problem) would help tremendously.

Thanks.

P.S. I would even be willing to discuss one on one teaching and appropriate compensation.

bluescarni commented 5 years ago

@stabilus work on improving the documentation is on the agenda, as you have seen in #285.

It would be helpful to understand what kind of tutorials you have in mind. PaGMO is a library which aims to be useful for, among others, the applications you mention, but it does require the user to do at least a little bit of coding. In particular, PaGMO is not really a modelling language in the same fashion as something like, e.g., Pyomo or AMPL, meaning that we don't provide higher-level constructs to translate a human-readable description of an optimisation problem into the lower-level code.

With that said, perhaps I have misunderstood and you have something else in mind (hence seeing some concrete examples of what you'd like to see in PaGMO would help).

stabilus commented 5 years ago

My mistake. I am interested in PyGMO tutorials - not PaGMO. But since the two are related by family, I assumed both were managed in parallel. Apologies!

ckaldemeyer commented 5 years ago

I therefore suggest you provide a few practical examples of how your code could be put to use, i.e:

* temperature forecasts

* stock price prediction based on time series containing features like price and various Technical analysis indicators

* segmentation / classification

* computer gaming bot

Correct me if am not right but PaGMO/PyGMO is a framework primarily for optimization and not for forecasting, clustering, autonomous systems even if optimization methods can be useful within these domains e.g. for minimizing/maximizing some measure within cluster methods.

For forecasting/prediction/clustering I would rather look into specific libraries such as statsmodels or tsam.

As for PaGMO/PyGMO, from my point of view it is as close to the mathematical model as it can be. To understand this topic, I would rather look into the field of mathematical optimization and the Python tutorials. Then, things could get a bit clearer.