Skip to content

Commit a6099ed

Browse files
committed
Create pricing from scratch - cbc does not support resetting x?
Former-commit-id: 419f7d0 [formerly c13d1bd] Former-commit-id: 1525121
1 parent 7eb2fd4 commit a6099ed

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

examples/cutting_stock.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@
77
EPS = 10e-4
88
SOLVER = GUROBI
99

10+
def get_pricing(m, w, L):
11+
# creating the pricing problem
12+
pricing = Model(SOLVER)
13+
14+
# creating pricing variables
15+
a = []
16+
for i in range(m):
17+
a.append(pricing.add_var(obj=0, var_type=INTEGER, name='a_%d' % (i + 1)))
18+
19+
# creating pricing constraint
20+
pricing.add_constr(xsum(w[i] * a[i] for i in range(m)) <= L, 'bar_length')
21+
22+
pricing.write('pricing.lp')
23+
24+
return a, pricing
1025

1126
def cg():
1227
"""
@@ -32,19 +47,6 @@ def cg():
3247
for i in range(m):
3348
constraints.append(master.add_constr(lambdas[i] >= b[i], name='i_%d' % (i + 1)))
3449

35-
# creating the pricing problem
36-
pricing = Model(SOLVER)
37-
38-
# creating pricing variables
39-
a = []
40-
for i in range(m):
41-
a.append(pricing.add_var(obj=0, var_type=INTEGER, name='a_%d' % (i + 1)))
42-
43-
# creating pricing constraint
44-
pricing.add_constr(xsum(w[i] * a[i] for i in range(m)) <= L, 'bar_length')
45-
46-
pricing.write('pricing.lp')
47-
4850
new_vars = True
4951
while new_vars:
5052

@@ -65,6 +67,8 @@ def cg():
6567
# STEP 2: updating pricing objective with dual values from master
6668
##########
6769

70+
a, pricing = get_pricing(m, w, L)
71+
6872
pricing.objective = 1
6973
for i in range(m):
7074
a[i].obj = -constraints[i].pi

0 commit comments

Comments
 (0)