2017-03-09 14 views
0

cvxpy에서 최적화 문제에 많은 제약 조건을 추가하고 싶습니다. MATLAB에서 나는 피할 수있는 선을 추가하고 for 루프를 사용하여 구속 조건을 생성 할 수있다. cvxpy에 'subject to'개념이 없기 때문에 어떻게 cvxpy에서 동일한 작업을 수행 할 수 있습니까? 어떤 제안이라도 제발?cvxpy에 몇 가지 제약 조건을 쓰는 방법은 무엇입니까?

답변

5

파이썬에서 constraints은 목록입니다. for 루프를 사용하면 이렇게 추가/확장 할 수 있습니다 (CVXPY functions).

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