I have created the following MIP which I assumed is small and would only take seconds to built and solve.
I’ve been working with CPLEX/Gurobi quite a lot, just not in combination with Julia, so I expected this to be a quick build, even over the input of size 3000.
Note only did I run out of memory on my laptop ( 10 GB ), on Sagemaker ( 64GB ) it takes several minutes to execute the MIP. ( Note that optimize should be solved quickly as no constraint has an actual impact on the objective, and the variables are bounded )
Am I doing something wrong? Does anyone disagree with my expectation that it should take seconds only?
I need to know what I can expect from Julia as the MIPs I’m planning to build will get a whole lot bigger.
using JuMP using GLPK using BenchmarkTools function GetMaxCliques3( dims ) clique_model = Model(GLPK.Optimizer; bridge_constraints = false) # variable declaration @variable(clique_model, maxclique[ o in dims ], Bin ) @variable(clique_model, assignordertoclique[ o in dims , c in dims ], Bin ) @constraint( clique_model, mustassign[ o in dims ], assignordertoclique[ o, o ] == 1 ); @objective(clique_model, Max, sum( maxclique[o] for o in dims ) ) end
I read something about pre-compiling time and such, so in a separate cell I execute
dims = [ (i) for i = 1:3000 ] @btime GetMaxCliques3( dims )
The output is:
Objective is: 3000.0 Objective is: 3000.0 Objective is: 3000.0 Objective is: 3000.0 333.248 s (90104757 allocations: 7.31 GiB)