Main Content

OptimizationConstraint

Restricciones de optimización

Descripción

Un objeto OptimizationConstraint contiene restricciones en términos de objetos OptimizationVariable u objetos OptimizationExpression. Cada restricción utiliza uno de estos operadores de comparación: ==, <= o >=.

Una declaración única puede representar un arreglo de restricciones. Por ejemplo, puede expresar las restricciones de que cada fila de una variable de matriz x sume uno, como se muestra en Crear restricciones simples en bucle.

Creación

Cree un objeto de restricción vacío con optimconstr. Habitualmente, se utiliza un bucle para rellenar las expresiones del objeto.

Si crea expresiones de optimización a partir de variables de optimización utilizando los operadores de comparación ==, <= o >=, el objeto resultante es una OptimizationEquality o una OptimizationInequality. Consulte Consideraciones de compatibilidad.

Incluya restricciones en la propiedad Constraints de un problema de optimización utilizando notación de puntos.

prob = optimproblem;
x = optimvar('x',5,3);
rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == i;
end
prob.Constraints.rowsum = rowsum;

Propiedades

expandir todo

Nombres de índices, especificados como un arreglo de celdas de cadenas o vectores de caracteres. Para obtener más información sobre cómo utilizar nombres de índices, consulte Named Index for Optimization Variables.

Tipos de datos: cell

Esta propiedad o parámetro es de solo lectura.

Variables de optimización en el objeto, especificadas como una estructura de objetos OptimizationVariable.

Tipos de datos: struct

Funciones del objeto

infeasibilityVulneración de restricciones en un punto
showMuestre información sobre el objeto de optimización
writeSave optimization object description

Ejemplos

contraer todo

Cree una variable de optimización x de 5 por 3.

x = optimvar('x',5,3);

Cree la restricción de que cada fila sume uno utilizando un bucle. Inicialice el bucle mediante optimconstr.

rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == 1;
end

Inspeccione el objeto rowsum.

rowsum
rowsum = 
  5x1 Linear OptimizationConstraint array with properties:

    IndexNames: {{}  {}}
     Variables: [1x1 struct] containing 1 OptimizationVariable

  See constraint formulation with show.

Muestre las restricciones de rowsum.

show(rowsum)
(1, 1)

  x(1, 1) + x(1, 2) + x(1, 3) == 1

(2, 1)

  x(2, 1) + x(2, 2) + x(2, 3) == 1

(3, 1)

  x(3, 1) + x(3, 2) + x(3, 3) == 1

(4, 1)

  x(4, 1) + x(4, 2) + x(4, 3) == 1

(5, 1)

  x(5, 1) + x(5, 2) + x(5, 3) == 1

Historial de versiones

Introducido en R2017b

expandir todo