Hide keyboard shortcuts

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" 

2 

3from gpkit import Variable, Model 

4 

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! 

14 

15print("With constraints relaxed equally") 

16print("================================") 

17 

18from gpkit.constraints.relax import ConstraintsRelaxedEqually 

19 

20allrelaxed = ConstraintsRelaxedEqually(m) 

21mr1 = Model(allrelaxed.relaxvar, allrelaxed) 

22print(mr1) 

23print(mr1.solve(verbosity=0).table()) # solves with an x of 1.414 

24print("") 

25 

26print("With constraints relaxed individually") 

27print("=====================================") 

28 

29from gpkit.constraints.relax import ConstraintsRelaxed 

30 

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("") 

38 

39print("With constants relaxed individually") 

40print("===================================") 

41 

42from gpkit.constraints.relax import ConstantsRelaxed 

43 

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("")