ts=4
ratecon = np.array([6,4,10,0])
tanklim = np.array([10,8,10,6])
ratelim = np.array([4,6,4,6])
tanklevinit = 4
ratemin = 2
rateinj = Variable(ts)
tanklev = Variable(ts)
states = []
for t in range(1,ts):
states.append(tanklev[t]-tanklev[t-1] == rateinj[t] - ratecon[t])
planner = Problem(Minimize(sum_entries(tanklev)),
[tanklev[0] == tanklevinit,
rateinj >= ratemin,
rateinj <= ratelim,
tanklev >= 0,
tanklev <= tanklim
]+states)
planner.solve(verbose=True)
t_prob = TensorProblem(planner)
objective = scs_tf.solve(t_prob, equil_iters=50, max_iters=2500, gpu=False)
WARNING:tensorflow:tf.op_scope(values, name, default_name) is deprecated, use tf.name_scope(name, default_name, values)
KeyErrorTraceback (most recent call last)
<ipython-input-8-4f71c8397e03> in <module>()
1 t_prob = TensorProblem(planner)
----> 2 objective = scs_tf.solve(t_prob, equil_iters=50, max_iters=2500, gpu=False)
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/scs_tf.pyc in solve(problem, max_iters, trace, eps_primal, eps_dual, eps_gap, equil_iters, gpu)
157 eps_gap=1e-3, equil_iters=50, gpu=True):
158 """Create SCS tensorflow graph and solve."""
--> 159 scaled_problem = ScaledTensorProblem(problem, equil_iters)
160
161 # variables
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/scs_tf.pyc in __init__(self, orig, equil_iters)
29 shape = (int(self.orig.b.get_shape()[0]),
30 int(self.orig.c.get_shape()[0]))
---> 31 d, e = balance(self.orig.A, self.orig.AT, shape, equil_iters)
32 equil_sess = tf.Session()
33 with equil_sess.as_default():
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/equilibrate.pyc in balance(A, AT, shape, iters, name, seed)
17 for i in range(iters):
18 s = random_probe((n, 1))
---> 19 d += tf.square(A(s))
20 tmp = tf.sqrt(d/iters)
21 d = alpha*tf.inv(project(tmp, 1e-3, 1e3))
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/problem.pyc in A(self, x)
65 idx = slice(var_offset, var_offset+var_size[0]*var_size[1])
66 xs[var_id] = mat(x[idx,:], var_size)
---> 67 return vstack([vec(cvxpy_expr.tensor(Ai, xs)) for Ai in self.A_exprs])
68
69 def AT(self, y):
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/cvxpy_expr.pyc in tensor(lin_op, value_map)
26 def tensor(lin_op, value_map={}):
27 f_name = "tensor_" + lin_op.type
---> 28 return globals()[f_name](lin_op, value_map)
29
30 def tensor_mul(lin_op, value_map):
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/cvxpy_expr.pyc in tensor_sum(lin_op, value_map)
41 if len(lin_op.args) == 1:
42 # special case for single arg sum
---> 43 return tensor(lin_op.args[0], value_map)
44
45 return tf.add(
/home/nbuser/anaconda2_410/lib/python2.7/site-packages/cvxflow/cvxpy_expr.pyc in tensor(lin_op, value_map)
26 def tensor(lin_op, value_map={}):
27 f_name = "tensor_" + lin_op.type
---> 28 return globals()[f_name](lin_op, value_map)
29
30 def tensor_mul(lin_op, value_map):
KeyError: 'tensor_index'