2017-03-09 3 views
0

Ich möchte viele Einschränkungen in ein Optimierungsproblem unter cvxpy hinzufügen. In Matlab kann ich das tun, indem ich eine Zeile hinzufüge und dann for loop verwende, um die Einschränkungen zu erzeugen. Wie kann ich die gleiche Arbeit in cvxpy tun, da es in cvxpy keine 'Betreff' Konzepte gibt. Irgendwelche Vorschläge bitte?Wie schreibe ich mehrere Constraint in cvxpy?

Antwort

5

In Python constraints ist eine Liste. Sie können die for-Schleife verwenden, um sie so anzuhängen/zu erweitern (und CVXPY functions machen es einfacher).

import cvxpy as cvx 

samples = 10 
x = cvx.Variable(samples) 
y = range(1, samples+1) 
constraints = [] 

for i in xrange(samples): 
    constraints += [ 
     y[i] * x[i] <= 1000, 
     x[i] >= i 
    ] 

objective = cvx.Maximize(cvx.sum_entries(x)) 

prob = cvx.Problem(objective, constraints) 
prob.solve() 
print x.value 
Verwandte Themen