I am trying to optimize a system that monitors and advises a user multiple times over a certain period of time depending on changing outside factors. The systems behavior can be altered by 5 constrained input variables, i.e. weights of a cost function. These parameters are fixed for one run.

At the end of the execution, the systems performance can be summarized by 3 output parameters (1 real, 2 integer) that are unrelated to the input variables.

The goal is to find those input values that minimize the output parameters.

(I have looked at classic optimization problems, but since there is no objective function that can be defined and the outputs are non-smooth / non-linear many don't seem to be applicable. From what I found "derivative-free optimization" might work, but I am completely new to the topic)

The system's code is written in JAVA and one execution takes about 10min.

Any suggestion on what solver / search algorithm could be used for this problem (ideally with a JAVA library available)?

| cite | improve this question | | | | |
  • $\begingroup$ The current system code that takes 10min - is the one that is currently trying to optimize over the input? $\endgroup$ – Anton Menshov Jun 7 '19 at 16:28
  • 1
    $\begingroup$ Minimizing the output parameters makes this a multiobjective optimization problem. Do you have a way of combining your outputs into a single scalar (i.e. by adding them together with weights applied to each)? If not, then the problem is even harder. $\endgroup$ – Richard Jun 7 '19 at 22:35
  • $\begingroup$ Anton: The 10mins is the execution time for one simulation (so until the result is available) Richard: The definition of suitable weight might be a challenge, but basically yes this could be done. Thank you both for your comments! $\endgroup$ – ZaGaikokujin Jun 8 '19 at 6:19
  • $\begingroup$ Is the simulation stochastic in any way? $\endgroup$ – Brian Borchers Jun 9 '19 at 3:19
  • $\begingroup$ Do you have the source code of the program to be optimized? If you knew where the discontinuities where, you might split your problem into smaller problems which are more optimizer friendly.. $\endgroup$ – MPIchael Jun 13 '19 at 13:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.