0
for i in P:
    S=(y[i]-R*p[i])*(y[i]-R*p[i])/(p[i]*p[i])
    print(S)

When I run the above program, the output is as below. How should I change it? I want to output y (i) to calculate the value.

<gurobi.QuadExpr: 0.6894031221303948 + -0.04151515151515151 y(1.0) + -0.04151515151515151 y(1.0) + [ 0.0025 y(1.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.04151515151515151 y(2.0) + -0.04151515151515151 y(2.0) + [ 0.0025 y(2.0) ^ 2 ]>
<gurobi.QuadExpr: 0.689403122130395 + -0.0172979797979798 y(3.0) + -0.0172979797979798 y(3.0) + [ 0.00043402777777777775 y(3.0) ^ 2 ]>
<gurobi.QuadExpr: 0.689403122130395 + -0.027676767676767678 y(4.0) + -0.027676767676767678 y(4.0) + [ 0.0011111111111111111 y(4.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.04612794612794612 y(5.0) + -0.04612794612794612 y(5.0) + [ 0.0030864197530864196 y(5.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.028631138975966558 y(6.0) + -0.028631138975966558 y(6.0) + [ 0.0011890606420927466 y(6.0) ^ 2 ]>
for i in y:
    print(y[i])

The above output is as follows.

<gurobi.Var y(1.0) (value 3.0)>
<gurobi.Var y(2.0) (value 4.0)>
<gurobi.Var y(3.0) (value 4.0)>
<gurobi.Var y(4.0) (value 5.0)>
<gurobi.Var y(5.0) (value 6.0)>
<gurobi.Var y(6.0) (value 8.0)>

1 Answers1

1

Assuming that you already solved the optimization problem, you can either access a variable's value by the .X attribute to evaluate your expression:

for i in P:
    S = (y[i].X-R*p[i].X)*(y[i].X-R*p[i].X)/(p[i].X * p[i].X)
    print(S)

or you can compute the value of your expressions using the current solution by the getValue() method:

for i in P:
    S = (y[i]-R*p[i])*(y[i]-R*p[i])/(p[i]*p[i])
    print(S.getValue())
joni
  • 6,840
  • 2
  • 13
  • 20