Abstract
Symmetry in mathematical optimization may create multiple, equivalent solutions. In nonconvex optimization, symmetry can negatively affect algorithm performance, e.g., of branch-and-bound when symmetry induces many equivalent branches. This paper develops detection methods for symmetry groups in quadratically-constrained quadratic optimization problems. Representing the optimization problem with adjacency matrices, we use graph theory to transform the adjacency matrices into binary layered graphs. We enter the binary layered graphs into the software package nauty that generates important symmetric properties of the original problem. Symmetry pattern knowledge motivates a discretization pattern that we use to reduce computation time for an approximation of the point packing problem. This paper highlights the importance of detecting and classifying symmetry and shows that knowledge of this symmetry enables quick approximation of a highly symmetric optimization problem.
1. Introduction
When the optimization variables can be permuted without changing the structure of the underlying optimization problem, we say that the formulation group of an optimization problem is symmetric [1,2]. For motivation, consider the circle packing problem illustrated in Figure 1 [3]. Given an integer , the circle packing problem asks: what is the largest radius r for which n non-overlapping circles can be placed in the unit square? Costa et al. [3] show that the formulation group, i.e., a subgroup of symmetry group generated by permuting variables and constraints, is isomorphic to a symmetry group created by permuting the variable indices and switching the two coordinates in a unit square (). Solution methods for nonconvex optimization problems lacking symmetry-aware formulations and/or solution procedures may end up exploring all of these equivalent solutions. In other words, symmetry may cause classical optimization methods such as branch-and-bound to explore many unnecessary subtrees.
Figure 1.
Given an integer , the circle packing problem asks: what is the largest radius r for which n non-overlapping circles can be placed in the unit square? Already for , there are four equivalent solutions [3]; these solutions are related to one another via rotations and reflections.
More generally, a number of authors have considered a range of symmetry detection methods, e.g., for constraint programming [4], integer programming [1,5,6,7,8], and mixed-integer nonlinear optimization [2]. These automatic symmetry detection methods can then be used to mitigate the computational difficulties caused by symmetries, e.g., with symmetry-breaking constraints [9,10,11], objective perturbation [12], specialized branching strategies [13,14], cutting planes [15,16], and extended formulations [17]. The recent computational comparison of Pfetsch and Rehn [18] indicates that these state-of-the-art symmetry handling methods expedite the solution process for the MIPLIB 2010 instances and additionally enable more instances to be solved in a time limit.
Researchers have also developed symmetry-handling methods for specific applications including covering design [19], circle packing [3,20], scheduling [21], transmission switching [22], unit commitment [23,24,25,26], and heat exchanger network synthesis [27,28]. As a concrete example of the type of contributions researchers have made, consider a job shop scheduling problem that minimizes makespan on two identical machines. Good scheduling formulations and/or solution procedures, e.g., Maravelias and Grossmann [29], Maravelias [30], and Mistry et al. [31], will implicitly exclude two of the three equivalent solutions diagrammed in Figure 2.
Figure 2.
To observe symmetries that may arise in scheduling, consider a job shop scheduling problem that minimizes makespan on two identical machines. Lacking symmetry-aware formulations and/or solution procedures, a solution procedure may end up exploring all three of these equivalent solutions.
This paper develops detection methods for symmetry groups in quadratically-constrained quadratic optimization problems. Representing the optimization problem with adjacency matrices, we use graph theory to transform the adjacency matrices into binary layered graphs. We enter the binary layered graphs into the software package nauty that generates important symmetric properties of the original problem. Symmetry pattern knowledge motivates a discretization pattern that we use to reduce computation time for an approximation of the point packing problem.
2. Formulation Symmetry for Quadratically-Constrained Quadratic Optimization Problems
Consider the quadratically-constrained quadratic optimization problem (QCQP):
where:
with finite variable bounds and coefficients for .
To represent symmetry in the QCQP formulation, consider , the symmetric group of order n formed by the possible permutation operations. The formulation group of QCQP, or , is the set of variable index permutations that preserve the objective and constraint structure [2]. For a variable index permutation , we seek the constraint index permutations that maintain both the objective value and the constraint structure on the feasible domain where . More formally:
Definition 1
(Formulation group of QCQP).
Because may be nonconvex and difficult to compute, this paper considers a restriction that enforces symmetry on the entire box bounds, i.e., we assume that for the purpose of computing . The next subsections represent formulation symmetry in two ways: (i) expression graphs in Section 2.1 and (ii) tensors in Section 2.2. Representing formulation symmetry using expression graphs is due to Liberti [2] and the tensor representation is new to this paper.
2.1. Symmetry Detection with Expression Graphs
One option to compare two functions is to compare their expression trees, i.e., a directed acyclic graph representation of each function that incorporates the relevant operations, constants, and variables [2]. These expression tree models were first developed for mixed integer nonlinear optimization (MINLP) by Smith and Pantelides [32] and are common in most global MINLP solvers [33,34,35,36,37,38,39] and other MINLP-related software [40,41,42]. Figure 3 illustrates a simple example of an expression tree for . A tree comparison algorithm may recursively compare two trees to determine equivalence [2]. More advanced implementations may detect equivalent but differently-formulated expressions, e.g., versus .
Figure 3.
Example of an expression tree for .
With a directed acyclic graph representation, Liberti [2] computes the formulation symmetry group using the graph isomorphism problem, i.e., a problem that can be solved using off-the-shelf software nauty [43]. Liberti [2] also proves how to map the automorphism group of a directed acyclic graph to the formulation group of the original MINLP.
2.2. Symmetry Detection with Tensors
As an alternative to the expression tree representation, Figure 4 illustrates that QCQP can be represented as a tensor: . Each of the two dimensions corresponds to a constant term and the variables. Each two-dimensional slice of the tensor corresponds to the constant, linear, and quadratic terms in a constraint. The first m slices correspond to Equation (1) and have entries . The next slices correspond to the box constraints, i.e., and .
Figure 4.
Tensor representation of the symmetry.
The formulation group of this representation is:
2.2.1. Sparse Tensor Representation
For a given tensor , consider a sparse representation, illustrated in Figure 5, that reduces the memory required to store the tensor. Instead of storing the entire tensor, we store arrays of length s where s is the number of nonzero entries in QCQP. The first array, = stores all nonzero entries of QCQP. The next three arrays, represent the indices corresponding to the nonzero entries. The maximum size of s is , but, in practice, most arrays will be significantly shorter.
Figure 5.
Sparse tensor representation models as 4 arrays with the nonzero entry in and arrays holding the index.
2.2.2. Converting Matrices to Edge-Labeled, Vertex-Colored Graphs
We convert the sparse tensor representation of into an edge-labeled, vertex-colored graph. Given the edge-labeled, vertex-colored graph, generating graph automorphisms to the original problem symmetries is well-known [1,5,44,45]. To construct the edge-labeled, vertex-colored graph, consider a graph corresponding to an instance . The function , for is an edge coloring where is the number of different coefficients in . Each unique element in is stored in a vector . We also partition (color) the vertex set into four subsets: a set representing the objective function, nodes for the constraints, a constant node , and variable nodes. The automorphism definition prevents vertices from being mapped onto a vertex of a different color, so these colors prevent, for example variables becoming constraints. The equivalence relation is [2]:
Figure 6 illustrates the edge-labeled, vertex-colored graph. Initially, the edge set is empty . For where , add an edge to , i.e., from a vertex in the set that represents the constant element / variables to a vertex in the set of the objective function / constraints, with the relevant color. The graph construction incorporates edges between variable nodes for the quadratic bilinear terms. For :
Figure 6.
The tensor as an edge-labeled, vertex-colored graph.
- If , i.e., a quadratic term, then .
- else for bilinear term, , then
3. Formulation Symmetry Detection via Binary Layered Graphs
The software nauty [43], which detects symmetry, accepts vertex-colored graphs but does not accept the Section 2.2.2 edge-labeled, vertex-colored graphs. Thus, we associate edge colors with layers in a graph and transform the edge-labeled, vertex-colored graph into a vertex-colored graph. Since the transformation from an edge-labeled, vertex-colored graph to a vertex-colored graph is isomorphic [43], the transformation does not lose anything. Using the resulting binary layered graphs, we generate the automorphism group and find symmetry in the original QCQP.
To convert a graph with ℓ colors into an ℓ - layered graph [43], we replace each vertex with a fixed connected graph of ℓ vertices . If an edge has color r, add an edge from to . Finally, we partition the vertices by the superscripts, . Alernatively, a binary representation avoids too many layers in G when the number of colors is large.
Definition 2
(Binary Layered Graph). Let be the number of edge labels of G. A binary layered graph is a vertex-colored graph where the number of layers matches a binary representation.
We assign a unique positive integer to each and map edge labels to a binary representation that switches on/off parameters to represent the edge colors as layers. If , add a new edge from to for every :
Figure 7 illustrates the resulting binary labeled graph with its layers. There are vertices for the objective function and each constraint and layers of copies of these constraints (connected with vertical edges). The horizontal edges encode the problem coefficients. On the upper part of Figure 7, there are vertices for a constant element and each variable and a layer of variable copies (connected with vertical edges). Here, the horizontal edges and loops distinguish the linear and bilinear terms. Algorithms 1 and 2 summarize computing the vertex and edge sets, respectively.
Figure 7.
Binary layered graph representation of QCQP using the tensor representation .
| Algorithm 1 Algorithm constructing the vertex set |
|
| Algorithm 2 Algorithm constructing the edge set |
|
4. Numerical Discussion and Comparison to the State-of-the-Art
The following example incorporates the algorithms proposed in this paper. We construct the binary labeled graph and then enter it into nauty through the dreadnaut command line interface:
The optimization problem has sparse matrix representation: , vector of unique elements , and layers.
Equation (2) computes the binary representation of each unique element, e.g., indicates that there is an edge between vertices on layer zero and another edge between the same vertices on layer 1. The graph consists of four layers and , one associated with a constant element and one with the objective function and the rest for the problem variables and constraints. The left-hand side of Figure 8 illustrates the graph representation. Nauty generates permutations: . To see how these Nauty-generated permutations usefully explain the symmetry properties of the entire problem, observe: (i) Permutations , as shown in Figure 8, permute the constraints and (ii) Permutations are associated with the variables and with their copies. These permutations therefore allow us to automatically calculate the formulation group .
Figure 8.
Illustration of the example problem using the binary labeled graph representation (left) and the directed acyclic graph representation (right).
The right-hand side of Figure 8 uses Section 2.1 to develop a directed acyclic graph representation for the same problem. The graph colors represent the vertex partitioning that enables node exchanges. In this case, the directed acyclic graph representation uses a smaller number of vertices and edges than the tensor-based representation. However, the representations generate the same formulation group.
Comparison. To evaluate the trade-offs between the tensor and directed acyclic graph representations, observe that both methods will search for the same formulation group symmetries. However, the tensor representation may be especially useful when working with problems with many differently-valued coefficients, i.e., the logarithmic number of layers may reduce the number of nodes. The function assigning integer values to the problem coefficients lets us work not only with 0–1 coefficients, but also with any other value.
5. Exploiting Symmetry in the Point Packing Problem
Once symmetry has been detected, we can use our knowledge of the symmetry to mitigate the computational difficulties caused by symmetry. Here, we focus on solving the point packing problem [46,47,48,49]. The point packing problem concerns packing n points to a unit square. The aim is to maximize the in-between distance between any two points:
where denotes the minimum distance between any two points. To approximate this problem, consider a grid approach that approximates the optimal solution by adding grid lines to the unit square and forcing the points to be placed only to the vertices generated by these grid lines. Note that the point packing problem has significant applications, e.g., in placing mobile phone towers.
For n points, there will be at most a grid, where is the smallest number whose square is the least integer that is greater than n, i.e., and . In other words, we add at most grid lines. On this grid, points will occupy most of the vertexes and the unit length of spacing has been maximized. This approach, unfortunately, has the potential of missing the optimal solution. Consider fitting six points to the square. The most fitting grid is and the optimal we achieve is . However, the optimal solution of is achieved by the arrangement shown in Figure 9, which is not available on a grid. Although an approximation, is still a useful pruning tool, e.g., points need to be at least away from any other point.
Figure 9.
Optimal arrangement of six points.
Exhaustive Search and 2D Symmetry Removal
First, consider Algorithm 3, an exhaustive search method. To break the symmetries, start by calculating how many grids can possibly have points and the upper limit on the number of points on any occupied grid lines. Once calculated, the complete set of all possible combinations on the x-axis is calculated. For example, on a grid, one possible x-coordinate setup is . If we label the five horizontal grid lines from 1 to 5, this setup means that there are two points on grid 1, no points on grid 2, one point on grid 3, no points on grid 4 and two points on grid 5. To remove x-axis symmetries, we consider reflections as a duplication, i.e., only one of and are considered.
| Algorithm 3 Algorithm 1—Exhaustive Search |
| Input: number of points n, number of grids k, number of occupied grids m. Output: The optimal solution
|
Algorithm 3 considers the unique x-axis combinations. The y-axis, i.e., the horizontal grid lines, should preserve the same characteristics. Thus, in the improved Algorithm 4, we generate the set O of possible point arrangement such as , and this is applied to both horizontal and vertical grid lines; in other words, we now consider the product to give the exact coordinates of all n points.
| Algorithm 4 Algorithm 2—2D Symmetry Removal |
| Input: number of points n, number of grids k, number of occupied grids m. Output: The optimal solution
|
Example 1.
Consider for five points on a grid where we have O as . The finalized set of full coordinates would contain 25 elements where the product of O with itself is taken. One particular point setup generated by this approach is for example, . If we call the vertical grids as to , respectively, and the horizontal grids as to , respectively, would mean that we have the following point locations:
- One point on , 2 points on and 2 points on . This is from .
- Two points on , 1 point on and 2 points on . This is from .
For , we would have five complete point setups, as shown in Figure 10. In the last setup, we have also added the labels for grids to match what we defined earlier. This diagram contains all possible arrangements of points under this particular orbit partitioning.
Figure 10.
Five point setups for . (a) point setup1; (b) point setup2; (c) point setup3; (d) point setup4; (e) point setup5.
To improve further, we can implement pruning mechanisms such as using the bound to prune the non-optimal setups. In this particular example, we would have pruned all five setups as none of them satisfy the bound from the most fitting grid. This means that is not the optimal point setup for five points on a grid.
6. Results and Comparisons
Both algorithms have been implemented and run on the same devices (HP EliteDesk 800 G2 TWR Intel Core i7-6700 3.4 GHz) to provide effective comparisons. Figure 11 shows the experimental results of 2D Symmetry Removal for packing 6 points. We eliminated the result from Exhaustive Search as it is clear that 2D Symmetry Removal outperforms Exhaustive Search in terms of run-time. We notice that m, the number of occupied grids (in the diagram, this corresponds to the occupied vertical grids), has an impact on the run-time. To a reasonable extent, the larger the m, the more choices we have regarding where we place the points so it in general takes longer time to compute. Although our strategies effectively convert the point packing QCQP into a mixed-integer linear optimization problems, we could have alternatively designed a branch-and-bound algorithm that is symmetry aware.
Figure 11.
Run-time for six points on different grids with different number of occupied grids. The line is above the line .
7. Conclusions
This paper has explored alternative representations for finding symmetry in formulation groups of a quadratically-constrained optimization problem. We also show that, after knowing the symmetry, we can design significantly better methods to solve the optimization problems. The contributions in this paper are relevant to industrial problems that contain a point packing element [50,51,52].
Author Contributions
Conceptualization, G.K. and R.M.; methodology, G.K.; validation, X.W.; writing, G.K., X.W., and R.M.; supervision, R.M.
Funding
This work was funded by an Engineering & Physical Sciences Research Council (ESPRC) Research Fellowship to R.M. (Grant No. EP/P016871/1) and an EPSRC DTP to G.K.
Conflicts of Interest
The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.
Abbreviations
The following abbreviations are used in this manuscript:
| MINLP | Mixed-integer nonlinear optimization |
| QCQP | Quadratically-constrained quadratic optimization |
References
- Margot, F. Symmetry in Integer Linear Programming. In 50 Years of Integer Programming 1958–2008: From the Early Years to the State-of-the-Art; Springer: Berlin/Heidelberg, Germany, 2010; pp. 647–686. [Google Scholar]
- Liberti, L. Reformulations in mathematical programming: Automatic symmetry detection and exploitation. Math. Program. 2012, 131, 273–304. [Google Scholar] [CrossRef]
- Costa, A.; Hansen, P.; Liberti, L. On the impact of symmetry-breaking constraints on spatial Branch-and-Bound for circle packing in a square. Discret. Appl. Math. 2013, 161, 96–106. [Google Scholar] [CrossRef]
- Puget, J.F. Automatic Detection of Variable and Value Symmetries. In Proceedings of the 11th International Conference on Principles and Practice of Constraint Programming—CP 2005, Sitges, Spain, 1–5 October 2005; van Beek, P., Ed.; Springer: Berlin/Heidelberg, Germany, 2005; pp. 475–489. [Google Scholar]
- Salvagnin, D. A Dominance Procedure for Integer Programming. Master’s Thesis, University of Padua, Padua, Italy, 2005. [Google Scholar]
- Berthold, T.; Pfetsch, M. Detecting Orbitopal Symmetries. In Proceedings of the Annual International Conference of the German Operations Research Society (GOR), Augsburg, Germany, 3–5 September 2008; Springer: Berlin/Heidelberg, Germany, 2009; pp. 433–438. [Google Scholar]
- Bremner, D.; Dutour Sikirić, M.; Pasechnik, D.V.; Rehn, T.; Schürmann, A. Computing symmetry groups of polyhedra. LMS J. Comput. Math. 2014, 17, 565–581. [Google Scholar] [CrossRef]
- Knueven, B.; Ostrowski, J.; Pokutta, S. Detecting almost symmetries of graphs. Math. Program. Comput. 2018, 10, 143–185. [Google Scholar] [CrossRef]
- Sherali, H.D.; Smith, J.C. Improving Discrete Model Representations via Symmetry Considerations. Manag. Sci. 2001, 47, 1396–1407. [Google Scholar] [CrossRef]
- Liberti, L. Automatic Generation of Symmetry-Breaking Constraints. In Combinatorial Optimization and Applications; Yang, B., Du, D.Z., Wang, C.A., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; pp. 328–338. [Google Scholar]
- Liberti, L.; Ostrowski, J. Stabilizer-based symmetry breaking constraints for mathematical programs. J. Glob. Optim. 2014, 60, 183–194. [Google Scholar] [CrossRef]
- Ghoniem, A.; Sherali, H.D. Defeating symmetry in combinatorial optimization via objective perturbations and hierarchical constraints. IIE Trans. 2011, 43, 575–588. [Google Scholar] [CrossRef]
- Ostrowski, J.; Linderoth, J.; Rossi, F.; Smriglio, S. Constraint Orbital Branching. In Proceedings of the 13th International Conference on Integer Programming and Combinatorial Optimization IPCO, Bertinoro, Italy, 26–28 May 2008; pp. 225–239. [Google Scholar]
- Ostrowski, J.; Linderoth, J.; Rossi, F.; Smiriglio, S. Orbital branching. Math. Program. 2011, 126, 147–178. [Google Scholar] [CrossRef]
- Margot, F. Pruning by isomorphism in branch-and-cut. Math. Program. 2002, 94, 71–90. [Google Scholar] [CrossRef]
- Kaibel, V.; Peinhardt, M.; Pfetsch, M.E. Orbitopal fixing. Discret. Optim. 2011, 8, 595–610. [Google Scholar] [CrossRef]
- Faenza, Y.; Kaibel, V. Extended Formulations for Packing and Partitioning Orbitopes. Math. Oper. Res. 2009, 34, 686–697. [Google Scholar] [CrossRef]
- Pfetsch, M.E.; Rehn, T. A computational comparison of symmetry handling methods for mixed integer programs. Math. Program. Comput. 2019, 11, 37–93. [Google Scholar] [CrossRef]
- Margot, F. Small covering designs by branch-and-cut. Math. Program. 2003, 94, 207–220. [Google Scholar] [CrossRef]
- Costa, A.; Liberti, L.; Hansen, P. Formulation symmetries in circle packing. Electron. Notes Discret. Math. 2010, 36, 1303–1310. [Google Scholar] [CrossRef]
- Ostrowski, J.; Vannelli, A.; Anjos, M.F. Symmetry in Scheduling Problems; Cahier du GERAD G-2010-69; GERAD: Montreal, QC, Canada, 2010. [Google Scholar]
- Ostrowski, J.; Wang, J.; Liu, C. Exploiting Symmetry in Transmission Lines for Transmission Switching. IEEE Trans. Power Syst. 2012, 27, 1708–1709. [Google Scholar] [CrossRef]
- Ostrowski, J.; Wang, J. Network reduction in the Transmission-Constrained Unit Commitment problem. Comput. Ind. Eng. 2012, 63, 702–707. [Google Scholar] [CrossRef]
- Ostrowski, J.; Anjos, M.F.; Vannelli, A. Modified orbital branching for structured symmetry with an application to unit commitment. Math. Program. 2015, 150, 99–129. [Google Scholar] [CrossRef]
- Lima, R.M.; Novais, A.Q. Symmetry breaking in MILP formulations for Unit Commitment problems. Comput. Chem. Eng. 2016, 85, 162–176. [Google Scholar] [CrossRef]
- Knueven, B.; Ostrowski, J.; Wang, J. The Ramping Polytope and Cut Generation for the Unit Commitment Problem. INFORMS J. Comput. 2018, 30, 739–749. [Google Scholar] [CrossRef]
- Kouyialis, G.; Misener, R. Detecting Symmetry in Designing Heat Exchanger Networks. In Proceedings of the International Conference of Foundations of Computer-Aided Process Operations-FOCAPO/CPC, Tucson, AZ, USA, 8–12 January 2017. [Google Scholar]
- Letsios, D.; Kouyialis, G.; Misener, R. Heuristics with performance guarantees for the minimum number of matches problem in heat recovery network design. Comput. Chem. Eng. 2018, 113, 57–85. [Google Scholar] [CrossRef]
- Maravelias, C.T.; Grossmann, I.E. A hybrid MILP/CP decomposition approach for the continuous time scheduling of multipurpose batch plants. Comput. Chem. Eng. 2004, 28, 1921–1949. [Google Scholar] [CrossRef]
- Maravelias, C.T. Mixed-Time Representation for State-Task Network Models. Ind. Eng. Chem. Res. 2005, 44, 9129–9145. [Google Scholar] [CrossRef]
- Mistry, M.; Callia D’Iddio, A.; Huth, M.; Misener, R. Satisfiability modulo theories for process systems engineering. Comput. Chem. Eng. 2018, 113, 98–114. [Google Scholar] [CrossRef]
- Smith, E.M.B.; Pantelides, C.C. A symbolic reformulation/spatial branch-and-bound algorithm for the global optimisation of nonconvex MINLPs. Comput. Chem. Eng. 1999, 23, 457–478. [Google Scholar] [CrossRef]
- Tawarmalani, M.; Sahinidis, N.V. A polyhedral branch-and-cut approach to global optimization. Math. Program. 2005, 103, 225–249. [Google Scholar] [CrossRef]
- Belotti, P.; Lee, J.; Liberti, L.; Margot, F.; Wachter, A. Branching and Bounds Tightening techniques for Non-convex MINLP. Optim. Methods Softw. 2009, 24, 597–634. [Google Scholar] [CrossRef]
- Youdong, L.; Linus, S. The global solver in the LINDO API. Optim. Methods Softw. 2009, 24, 657–668. [Google Scholar]
- Misener, R.; Floudas, C.A. ANTIGONE: Algorithms for coNTinuous/Integer Global Optimization of Nonlinear Equations. J. Glob. Optim. 2014, 59, 503–526. [Google Scholar] [CrossRef]
- Vigerske, S. Decomposition in Multistage Stochastic Programming and a Constraint Integer Programming Approach to Mixed-Integer Nonlinear Programming. Ph.D. Thesis, Humboldt-Universität zu Berlin, Berlin, Germany, 2013. [Google Scholar]
- Mahajan, A.; Leyffer, S.; Linderoth, J.; Luedtke, J.; Munson, T. Minotaur: A mixed-integer nonlinear optimization toolkit. Optim. Online 2017, 6275. [Google Scholar]
- Boukouvala, F.; Misener, R.; Floudas, C.A. Global optimization advances in Mixed-Integer Nonlinear Programming, MINLP, and Constrained Derivative-Free Optimization, CDFO. Eur. J. Oper. Res. 2016, 252, 701–727. [Google Scholar] [CrossRef]
- Fourer, R.; Maheshwari, C.; Neumaier, A.; Orban, D.; Schichl, H. Convexity and concavity detection in computational graphs: Tree walks for convexity assessment. INFORMS J. Comput. 2010, 22, 26–43. [Google Scholar] [CrossRef]
- Hart, W.E.; Laird, C.; Watson, J.; Woodruff, D.L. Pyomo: Modeling and solving mathematical programs in python. Math. Program. Comput. 2011, 3, 219–260. [Google Scholar] [CrossRef]
- Ceccon, F.; Siirola, J.D.; Misener, R. SUSPECT: MINLP special structure detector for Pyomo. Optim. Lett. 2019. [Google Scholar] [CrossRef]
- McKay, B.D.; Piperno, A. Practical graph isomorphism, II. J. Symb. Comput. 2014, 60, 94–112. [Google Scholar] [CrossRef]
- Ramani, A.; Aloul, F.; Markov, I.; Sakallah, K.A. Breaking instance-independent symmetries in exact graph coloring. J. Artif. Intell. Res. 2006, 1, 324–329. [Google Scholar] [CrossRef]
- Ramani, A.; Markov, I.L. Automatically Exploiting Symmetries in Constraint Programming. In Recent Advances in Constraints; Faltings, B.V., Petcu, A., Fages, F., Rossi, F., Eds.; Springer: Berlin/Heidelberg, Germany, 2005; pp. 98–112. [Google Scholar]
- Anstreicher, K.M. Semidefinite programming versus the reformulationlinearization technique for nonconvex quadratically constrained quadratic programming. J. Glob. Optim. 2009, 43, 471–484. [Google Scholar] [CrossRef]
- Misener, R.; Floudas, C.A. Global optimization of mixed-integer quadratically-constrained quadratic programs (MIQCQP) through piecewise-linear and edge-concave relaxations. Math. Program. 2012, 136, 155–182. [Google Scholar] [CrossRef]
- Misener, R.; Floudas, C.A. GloMIQO: Global mixed-integer quadratic optimizer. J. Glob. Optim. 2013, 57, 3–50. [Google Scholar] [CrossRef]
- Furini, F.; Traversi, E.; Belotti, P.; Frangioni, A.; Gleixner, A.; Gould, N.; Liberti, L.; Lodi, A.; Misener, R.; Mittelmann, H. QPLIB: A library of quadratic programming instances. Math. Program. Comput. 2019, 11, 237–265. [Google Scholar] [CrossRef]
- Jones, D.R. A fully general, exact algorithm for nesting irregular shapes. J. Glob. Optim. 2014, 59, 367–404. [Google Scholar] [CrossRef]
- Misener, R.; Smadbeck, J.B.; Floudas, C.A. Dynamically generated cutting planes for mixed-integer quadratically constrained quadratic programs and their incorporation into GloMIQO 2. Optim. Methods Softw. 2015, 30, 215–249. [Google Scholar] [CrossRef]
- Wang, A.; Hanselman, C.L.; Gounaris, C.E. A customized branch-and-bound approach for irregular shape nesting. J. Glob. Optim. 2018, 71, 935–955. [Google Scholar] [CrossRef]
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).