コード例 #1
0
ファイル: t_model.py プロジェクト: servic07/gpkit
 def test_sp_relaxation(self):
     w = Variable('w')
     x = Variable('x')
     y = Variable('y')
     z = Variable('z')
     with SignomialsEnabled():
         m = Model(x, [x+y >= w, x+y <= z/2, y <= x, y >= 1], {z: 3, w: 3})
     r1 = ConstantsRelaxed(m)
     self.assertEqual(len(r1.varkeys), 8)
     with self.assertRaises(ValueError):
         mr1 = Model(x*r1.relaxvars, r1)  # no 'prod'
     mr1 = Model(x*r1.relaxvars.prod()**10, r1)
     cost1 = mr1.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost1/1024, 1, self.ndig)
     m.debug(verbosity=0)
     with SignomialsEnabled():
         m = Model(x, [x+y >= z, x+y <= z/2, y <= x, y >= 1], {z: 3})
     if self.solver != "cvxopt":
         m.debug(verbosity=0)
     r2 = ConstraintsRelaxed(m)
     self.assertEqual(len(r2.varkeys), 7)
     mr2 = Model(x*r2.relaxvars.prod()**10, r2)
     cost2 = mr2.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost2/1024, 1, self.ndig)
     with SignomialsEnabled():
         m = Model(x, [x+y >= z, x+y <= z/2, y <= x, y >= 1], {z: 3})
     if self.solver != "cvxopt":
         m.debug(verbosity=0)
     r3 = ConstraintsRelaxedEqually(m)
     self.assertEqual(len(r3.varkeys), 4)
     mr3 = Model(x*r3.relaxvar**10, r3)
     cost3 = mr3.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost3/(32*0.8786796585), 1, self.ndig)
コード例 #2
0
ファイル: t_model.py プロジェクト: hoburg/gpkit
 def test_sp_relaxation(self):
     w = Variable('w')
     x = Variable('x')
     y = Variable('y')
     z = Variable('z')
     with SignomialsEnabled():
         m = Model(x, [x+y >= w, x+y <= z/2, y <= x, y >= 1], {z: 3, w: 3})
     r1 = ConstantsRelaxed(m)
     self.assertEqual(len(r1.varkeys), 8)
     mr1 = Model(x*r1.relaxvars.prod()**10, r1)
     cost1 = mr1.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost1/1024, 1, self.ndig)
     m.debug(verbosity=0)
     with SignomialsEnabled():
         m = Model(x, [x+y >= z, x+y <= z/2, y <= x, y >= 1], {z: 3})
     if self.solver != "cvxopt":
         m.debug(verbosity=0)
     r2 = ConstraintsRelaxed(m)
     self.assertEqual(len(r2.varkeys), 7)
     mr2 = Model(x*r2.relaxvars.prod()**10, r2)
     cost2 = mr2.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost2/1024, 1, self.ndig)
     with SignomialsEnabled():
         m = Model(x, [x+y >= z, x+y <= z/2, y <= x, y >= 1], {z: 3})
     if self.solver != "cvxopt":
         m.debug(verbosity=0)
     r3 = ConstraintsRelaxedEqually(m)
     self.assertEqual(len(r3.varkeys), 4)
     mr3 = Model(x*r3.relaxvar**10, r3)
     cost3 = mr3.localsolve(verbosity=0)["cost"]
     self.assertAlmostEqual(cost3/(32*0.8786796585), 1, self.ndig)
コード例 #3
0
ファイル: t_model.py プロジェクト: khosravipasha/gpkit
 def test_sp_relaxation(self):
     w = Variable("w")
     x = Variable("x")
     y = Variable("y")
     z = Variable("z")
     with SignomialsEnabled():
         m = Model(x, [x + y >= w, x + y <= z / 2, y <= x, y >= 1], {
             z: 3,
             w: 3
         })
     r1 = ConstantsRelaxed(m)
     self.assertEqual(len(r1.varkeys), 8)
     with self.assertRaises(ValueError):
         _ = Model(x * r1.relaxvars, r1)  # no "prod"
     sp = Model(x * r1.relaxvars.prod()**10, r1).sp(use_pccp=False)
     cost = sp.localsolve(verbosity=0, solver=self.solver)["cost"]
     self.assertAlmostEqual(cost / 1024, 1, self.ndig)
     m.debug(verbosity=0, solver=self.solver)
     with SignomialsEnabled():
         m = Model(x, [x + y >= z, x + y <= z / 2, y <= x, y >= 1], {z: 3})
     m.debug(verbosity=0, solver=self.solver)
     r2 = ConstraintsRelaxed(m)
     self.assertEqual(len(r2.varkeys), 7)
     sp = Model(x * r2.relaxvars.prod()**10, r2).sp(use_pccp=False)
     cost = sp.localsolve(verbosity=0, solver=self.solver)["cost"]
     self.assertAlmostEqual(cost / 1024, 1, self.ndig)
     with SignomialsEnabled():
         m = Model(x, [x + y >= z, x + y <= z / 2, y <= x, y >= 1], {z: 3})
     m.debug(verbosity=0, solver=self.solver)
     r3 = ConstraintsRelaxedEqually(m)
     self.assertEqual(len(r3.varkeys), 4)
     sp = Model(x * r3.relaxvar**10, r3).sp(use_pccp=False)
     cost = sp.localsolve(verbosity=0, solver=self.solver)["cost"]
     self.assertAlmostEqual(cost / (32 * 0.8786796585), 1, self.ndig)
コード例 #4
0
"Debug examples"
from gpkit import Variable, Model, units

x = Variable("x", "ft")
x_min = Variable("x_min", 2, "ft")
x_max = Variable("x_max", 1, "ft")
y = Variable("y", "volts")

m = Model(x/y, [x <= x_max, x >= x_min])
m.debug()

print("# Now let's try a model unsolvable with relaxed constants\n")

m2 = Model(x, [x <= units("inch"), x >= units("yard")])
m2.debug()

print("# And one that's only unbounded\n")

# the value of x_min was used up in the previous model!
x_min = Variable("x_min", 2, "ft")
m3 = Model(x/y, [x >= x_min])
m3.debug()

x_min = Variable("x_min", 2, "ft")
m4 = Model(x, [x >= x_min])
m4.debug()
コード例 #5
0
"Debug examples"

from gpkit import Variable, Model, units

x = Variable("x", "ft")
x_min = Variable("x_min", 2, "ft")
x_max = Variable("x_max", 1, "ft")
y = Variable("y", "volts")

m = Model(x/y, [x <= x_max, x >= x_min])
m.debug()

print "# Now let's try a model unsolvable with relaxed constants\n"

Model(x, [x <= units("inch"), x >= units("yard")]).debug()

print "# And one that's only unbounded\n"

# the value of x_min was used up in the previous model!
x_min = Variable("x_min", 2, "ft")
Model(x/y, [x >= x_min]).debug()
コード例 #6
0
"Debug examples"

from gpkit import Variable, Model
x = Variable("x", "ft")
x_min = Variable("x_min", 2, "ft")
x_max = Variable("x_max", 1, "ft")
y = Variable("y", "volts")
m = Model(x/y, [x <= x_max, x >= x_min])
m.debug(verbosity=0)
コード例 #7
0
ファイル: debug.py プロジェクト: practise2017/gpkit
"Debug examples"

from gpkit import Variable, Model
x = Variable("x", "ft")
x_min = Variable("x_min", 2, "ft")
x_max = Variable("x_max", 1, "ft")
y = Variable("y", "volts")
m = Model(x / y, [x <= x_max, x >= x_min])
m.debug(verbosity=0)