trying to optimize three functions simultaneously

17 visualizaciones (últimos 30 días)
Bilal Maarouf
Bilal Maarouf el 10 de Mzo. de 2018
Editada: John D'Errico el 10 de Mzo. de 2018
I would like to know how I can optimize three functions simultaneously, time, cost, and quality while each of them is non-linear. I have to minimize cost and time while maximizing quality. Thanks in advance.

Respuesta aceptada

John D'Errico
John D'Errico el 10 de Mzo. de 2018
Editada: John D'Errico el 10 de Mzo. de 2018
You cannot do it in general, to get a simultaneous optimum, so a point that is optimum for all three at once.
However, if you are willing to accept tradeoffs between these goals, then you can compose a single function that adds the three pieces, usually as some weighted combination. By allowing tradeoffs between the objectives, then you can arrive at a solution that will probably be truly optimal for any of them individually, but still the best overall solution.
Note that if the various objectives have completely different units, it makes no sense to just add them, since one will probably be much larger than the others, and will dominate the result. Then you need to form a weighted sum, with weights that cancel out the different units, making them all the same relative size. Now each is equally important in the result.
Once you have such a weighted linear combination of the three, then any optimizer will suffice to solve it. Or, you can use the optimization toolbox function fgoalattain, which helps to make this all a bit easier, since it is expressly written to solve multi-objective goal attainment problems.
As always with any optimization, it is important to use good starting values. This would seem especially true in multi-criteria problems, since each sub-objective will probably be maximal in a different location. That may create local optima, that are not the globally best solution.
In general, this area of optimization is called multi-criteria or multi-objective optimization.

Más respuestas (0)

Categorías

Más información sobre Multiobjective Optimization en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by