I am using CVX in Python. I have a boolean variable that is an nxn matrix (let’s call this matrix X). And I have a constraint where I sum across the rows of X.
I am trying to use “sum_entries(X , axis=0) == 1” for the constraint, but I am getting the following error:
TypeError: init() got an unexpected keyword argument ‘axis’
According to the documentation, this function is completely legal: http://www.cvxpy.org/en/latest/tutorial/functions/index.html#functions-along-an-axis
Does anyone have any idea why I am getting this error?
Here is the sample code:
from cvxpy import *
import numpy as np
n = 5
X = Bool(n , n)
Y = Bool(n , 1)
C = np.random.randint(1,5,(n,n))
objective = Minimize( sum_entries( mul_elemwise(C, X) ) )
constraints = []
constraints.append( sum_entries( X, axis=0 ) == 1 )
constraints.append( sum_entries( X, axis=1 ) <= 100*Y )
constraints.append( sum_entries(Y) == C )
prob = Problem(objective, constraints)
prob.solve(solver='GUROBI',verbose = True)