Doctoral Dissertations

Date of Award


Degree Type


Degree Name

Doctor of Philosophy


Industrial Engineering

Major Professor

James Ostrowski

Committee Members

James Ostrowski, Hugh Medal, Mingzhou Jin, Jean-Paul Watson


This thesis explores two algorithmic approaches for exploiting symmetries in linear and integer linear programs. The first is orbital crossover, a novel method of crossover designed to exploit symmetry in linear programs. Symmetry has long been considered a curse in combinatorial optimization problems, but significant progress has been made. Up until recently, symmetry exploitation in linear programs was not worth the upfront cost of symmetry detection. However, recent results involving a generalization of symmetries, equitable partitions, has made the upfront cost much more manageable.

The motivation for orbital crossover is that many highly symmetric integer linear programs exist, and thus, solving symmetric linear programs is of major interest in order to efficiently solve symmetric integer linear programs. The results of this work indicate that a specialized linear programming algorithm that exploits symmetry is likely to be useful in the toolbox of linear programming solvers.

The second algorithm is orbital cut generation. The main issue brought forward by symmetric integer linear programs is multiple symmetric solutions having an equivalent objective value. This massively increases the search space for algorithms such as branch and bound or branch and cut. Orbital cut generation aims to tackle the issues of multiple equivalent symmetric solutions using symmetrically valid inequalities.

Chapter 2 shows how to effectively exploit symmetry in integer linear programs by generating symmetric cutting planes that remove multiple symmetric solutions in one go. Further, the method is strengthened using symmetry to aggregate integer linear programs and generate cutting planes in aggregate spaces before lifting them to the original problem.

Files over 3MB may be slow to open. For best results, right-click and select "save as..."