Hauptinhalt

OptimizationConstraint

Optimierungsnebenbedingungen

Beschreibung

Ein OptimizationConstraint-Objekt enthält Nebenbedingungen in Bezug auf OptimizationVariable-Objekte oder OptimizationExpression-Objekte. Jede Nebenbedingung verwendet einen der folgenden Vergleichsoperatoren: ==, <= oder >=.

Eine einzige Anweisung kann ein Array von Nebenbedingungen darstellen. Sie können beispielsweise die Nebenbedingungen so formulieren, dass jede Zeile einer Matrixvariablen x die Summe von eins ergibt, wie unter Erstellen einfacher Nebenbedingungen mithilfe einer Schleife dargestellt.

Tipp

Den vollständigen Workflow finden Sie unter Problem-Based Optimization Workflow oder Problem-Based Workflow for Solving Equations.

Erstellung

Erstellen Sie mithilfe von optimconstr ein leeres Nebenbedingungsobjekt. In der Regel wird eine Schleife verwendet, um die Ausdrücke im Objekt zu erzeugen.

Wenn Sie aus Optimierungsvariablen mithilfe der Vergleichsoperatoren ==, <= oder >= Optimierungsausdrücke bilden, so ist das resultierende Objekt entweder ein OptimizationEquality- oder ein OptimizationInequality-Objekt. Siehe Versionsverlauf.

Fügen Sie die Nebenbedingungen in die Eigenschaft Constraints eines Optimierungsproblems mithilfe der Punktnotation ein.

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;

Eigenschaften

alle erweitern

Indexnamen, angegeben als Zellenarray aus Zeichenfolgen oder Zeichenvektoren. Informationen zur Verwendung von Indexnamen finden Sie unter Named Index for Optimization Variables.

Datentypen: cell

Diese Eigenschaft ist schreibgeschützt.

Optimierungsvariablen im Objekt, angegeben als Struktur aus OptimizationVariable-Objekten.

Datentypen: struct

Objektfunktionen

evaluateEvaluate optimization expression or objectives and constraints in problem
infeasibilityConstraint violation at a point
issatisfiedConstraint satisfaction of an optimization problem at a set of points
showDisplay information about optimization object
writeSave optimization object description

Beispiele

alle reduzieren

Erstellen Sie eine 5 × 3-Optimierungsvariable x.

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

Erstellen Sie mithilfe einer Schleife die Bedingung, dass die Summe jeder Zeile gleich eins sein muss. Initialisieren Sie die Schleife mithilfe von optimconstr.

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

Überprüfen Sie das rowsum-Objekt.

rowsum
rowsum = 
  5×1 Linear OptimizationConstraint array with properties:

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

  See constraint formulation with show.

Zeigen Sie die Nebenbedingungen von rowsum an.

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

Versionsverlauf

Eingeführt in R2017b

alle erweitern