Borrar filtros
Borrar filtros

How can I associate complicated constraints in optimization problems using fmincon or intlinprog?

6 visualizaciones (últimos 30 días)
Greetings,
I'm trying to solve an optimization problem using fmincon or intlinprog, but I need to associate some very complicated restrictions with the problem. My cost function is defined by the absolute value of a sum of complex numbers in which the phases are the variables that must be optimized and the absolute values of these complex numbers are known. That said, I would like to add a restriction defined by the absolute value of the difference between the absolute values of two sums of complex numbers: the first term is the cost function itself and the second term is another absolute value of the sum of complex numbers with absolute values known and phases corresponding to the problem variables. I would like to know how to add this restriction (Is this really possible?) using fmincon and intlinprog (these phases can be continuous or discrete). I attached the mathematical expressions to make everything clear.
Optimization Problem:
Restriction:

Respuestas (1)

Walter Roberson
Walter Roberson el 13 de Dic. de 2023
Use the nonlinear contraint function.
f(x)-g(x)<=c translates into f(x)-g(x)-c <= 0 so return f(x)-g(x)
Caution: nonlinear contraints are not necessarily valid at all times .
  3 comentarios
Matt J
Matt J el 18 de Dic. de 2023
Editada: Matt J el 18 de Dic. de 2023
intlinprog cannot be applied to nonlinear discrete problems. You would have to use ga(), where nonlinear constraint are expressed in the same manner.
Gabriel
Gabriel el 18 de Dic. de 2023
Excellent! I will try to use the genetic algorithm function and come back here with an example of discrete variables and non-linear constraints. Thank you for the tip.

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Programming and Mixed-Integer Linear Programming en Help Center y File Exchange.

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by