optimization with two-part value range

3 visualizaciones (últimos 30 días)
Marius Buck
Marius Buck el 11 de Jun. de 2024
Comentada: Marius Buck el 13 de Jun. de 2024
Dear MATLAB users and MathWorks support team,
I cannot find a solution to represent an optimization problem in MATLAB in which variables in the objective function can take on a two-part value range. The variable in the objective function should correspond to the thermal output of a heat pump in a central heating system. The variable should be able to assume the values 0 (heat pump off) and all values between 100 and 400 (heat pump on with an output between 100 and 400 kW).
x ∈ {0} ∪ [100, 400]
Do you know of a way to implement this condition? I would very much appreciate an answer or the opportunity to discuss this in more detail.

Respuesta aceptada

Stephan
Stephan el 11 de Jun. de 2024
You could try to define 2 variables x1 and x2 as the solution. x1 is an integer that assumes either 0 or 1 and x2 corresponds to the interval of the output of your heat pump. The actual output is the product of x1 and x2. This should solve your problem.
  3 comentarios
Stephan
Stephan el 12 de Jun. de 2024
Editada: Stephan el 12 de Jun. de 2024
Can you share your code? This would make it easier for contributers to help you. You could also read here - maybe this is helpful.
Maybe it would be useful to adress this topic in a new question.
Marius Buck
Marius Buck el 13 de Jun. de 2024
Dear Stephan, I found out about another way to solve the problem from Matlab Support. It is possible to keep the problem as a linear MILP and thus solve it with the intlinprog solver.
The trick is to use binary indicator variables. Information on this can be found here, for example:

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by