tpaviot / ProcessScheduler

A Python package for automatic and optimized resource scheduling
https://processscheduler.github.io/
GNU General Public License v3.0
59 stars 17 forks source link

Multi objective optimization performances #57

Closed tpaviot closed 3 years ago

tpaviot commented 3 years ago

The built-in optimization solver for z3 appears to be weak regarding scalability. Works well for small problems. Larger problems take too much time to successfully report a solution.

tpaviot commented 3 years ago

I have the following idea: turn the multiobjective problem into a single one. If O_i and O_j are two objectives that have to be minimized, then minimize the objective O=W_iO_i+W_jO_j where W_i and W_j are integers that represent the objective weights. Solve this single objective using the IncrementalSolver, which has proved to have better performances than the standard optimization solver.

tpaviot commented 3 years ago

WIP at dev branch https://github.com/tpaviot/ProcessScheduler/tree/multi-to-single-optimization-objective

dreinon commented 3 years ago

This issue is already solved right?

tpaviot commented 3 years ago

Yes, I think so. I close the issue. If ever there are new problems with multi-optimization performance, we will open a new ticket.