Often you can gain insight into the branch-and-bound process by considering the LP relaxation. Let's look at ways to reduce the size of this branch-and-bound tree. With all CPLEXs "bells and whistles" removed we get a slightly larger branch-and-bound tree: Option cplex_options ('timing 1 mipdisplay 5 mipinterval 1' & We will use this small example problem to demonstrate the effect of changing the default behaviour of CPLEX.įirst, let's remove all the CPLEX technology and re-solve our problem using an AMPL script: However, sometimes all the technology behind CPLEX does not work so well and we need to control the branch-and-bound tree. Solving this problem with AMPL and CPLEX is very fast (it is only a small problem): The AMPL model and data files, ice.mod and ice.dat respectively, are attached. Jim must decide which sculptures to make to maximize his profit. The sculptures will be transported on a truck with capacity 1.7 tonnes and he estimates the total weight of each sculpture (including the refrigeration unit) to be 1 tonne, half a tonne and a quarter of a tonne respectively. He must hire a refrigeration unit to transport each one. Jim has three requests for frozen ice sculptures, his commission is $10000, $7000 and $5000 respectively. To demonstrate the techniques we can use to control integer programming we will look at a simple integer programming problem: However, if your integer programmes are taking a long time to solve you can use some "tricks" to speed up the branch-and-bound process. This will often be enough to solve many of the problems you will encounter. Specifying variables to be integer or binary in AMPL will cause the solver, e.g., CPLEX, to use mixed-integer programming.