MCPcopy Create free account
hub / github.com/ERGO-Code/HiGHS / createMasterProblem

Function createMasterProblem

examples/branch-and-price.py:118–141  ·  view source on GitHub ↗
(columns: list)

Source from the content-addressed store, hash-verified

116# 0 <= \lambda_{k} <= 1, \foreach k // Can use each column at most once (can be fractional)
117#
118def createMasterProblem(columns: list):
119 m = highspy.Highs()
120 m.setOptionValue('output_flag', False)
121 m.setOptionValue('random_seed', SEED)
122
123 m.addVars(len(columns), [0.0]*len(columns), [1.0]*len(columns))
124
125 # min \sum_{k} \lambda_{k}
126 m.changeObjectiveSense(highspy.ObjSense.kMinimize)
127 m.changeColsCost(len(columns), list(range(len(columns))), [1.0]*len(columns))
128
129 # \sum_{k \in K_i} \lambda_{k} == 1, \foreach i
130 # 1 <= \sum_{k \in K_i} \lambda_{k} <= 1
131 for i in range(NumberItems):
132 K_i = [k for k, column in enumerate(columns) if i in column]
133 m.addRow(1, 1, len(K_i), K_i, [1.0]*len(K_i))
134
135 m.run()
136
137 solution = m.getSolution()
138 vals = list(solution.col_value)
139 duals = list(solution.row_dual)
140
141 return m, vals, duals
142
143#
144# Solve the knapsack subproblem exactly with HiGHS

Callers 1

Calls 10

setOptionValueMethod · 0.95
addVarsMethod · 0.95
changeObjectiveSenseMethod · 0.95
changeColsCostMethod · 0.95
addRowMethod · 0.95
runMethod · 0.95
listFunction · 0.85
rangeFunction · 0.85
HighsMethod · 0.80
getSolutionMethod · 0.45

Tested by

no test coverage detected