Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"Relaxation examples"
3from gpkit import Variable, Model
5x = Variable("x")
6x_min = Variable("x_min", 2)
7x_max = Variable("x_max", 1)
8m = Model(x, [x <= x_max, x >= x_min])
9print("Original model")
10print("==============")
11print(m)
12print("")
13# m.solve() # raises a RuntimeWarning!
15print("With constraints relaxed equally")
16print("================================")
18from gpkit.constraints.relax import ConstraintsRelaxedEqually
20allrelaxed = ConstraintsRelaxedEqually(m)
21mr1 = Model(allrelaxed.relaxvar, allrelaxed)
22print(mr1)
23print(mr1.solve(verbosity=0).table()) # solves with an x of 1.414
24print("")
26print("With constraints relaxed individually")
27print("=====================================")
29from gpkit.constraints.relax import ConstraintsRelaxed
31constraintsrelaxed = ConstraintsRelaxed(m)
32mr2 = Model(constraintsrelaxed.relaxvars.prod() * m.cost**0.01,
33 # add a bit of the original cost in
34 constraintsrelaxed)
35print(mr2)
36print(mr2.solve(verbosity=0).table()) # solves with an x of 1.0
37print("")
39print("With constants relaxed individually")
40print("===================================")
42from gpkit.constraints.relax import ConstantsRelaxed
44constantsrelaxed = ConstantsRelaxed(m)
45mr3 = Model(constantsrelaxed.relaxvars.prod() * m.cost**0.01,
46 # add a bit of the original cost in
47 constantsrelaxed)
48print(mr3)
49print(mr3.solve(verbosity=0).table()) # brings x_min down to 1.0
50print("")