An efficient, exact, and generic quadratic programming solver for geometric optimization

We present a solver for quadratic programming problems, which is tuned for applications in computational geometry. The solver implements a generalization of the simplex method to quadratic programs. Unlike existing solvers, it is e cient if the problem is dense and has few variables or few constraints. The range of applications covers well-known problems like smallest enclosing ball, or polytope distance, but also linear programming problems like smallest enclosing annulus. We provide an exact implementation with only little overhead compared to pure oating-point code. Moreover, unlike all methods for these problems that were suggested (and implemented) before in computational geometry, the runtime in practice is not exponential in the dimension of the problem, which for example allows to compute smallest enclosing balls in dimensions up to 300 (beyond that, the exact arithmetic becomes the limiting factor). The solver follows the generic programming paradigm, and it will become part of the European computational geometry algorithms library Cgal.

[1]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[2]  Kurt Mehlhorn,et al.  The leda user manual , 1996 .

[3]  Bernd Gärtner,et al.  Exact arithmetic at low cost—a case study in linear programming , 1999, SODA '98.

[4]  David R. Musser,et al.  STL tutorial and reference guide, second edition: C++ programming with the standard template library , 2001 .

[5]  Ravi Kumar,et al.  Roundness estimation via random sampling , 1999, SODA '99.

[6]  Emo Welzl,et al.  Random sampling in geometric optimization: new insights and applications , 2000, SCG '00.

[7]  Bernd Gärtner,et al.  Pitfalls in computing with pseudorandom determinants , 2000, SCG '00.

[8]  P. Wolfe THE SIMPLEX METHOD FOR QUADRATIC PROGRAMMING , 1959 .

[9]  Micha Sharir,et al.  Approximation and exact algorithms for minimum-width annuli and shells , 1999, SCG '99.

[10]  Geert-Jan Giezeman,et al.  On the design of CGAL a computational geometry algorithms library , 2000, Softw. Pract. Exp..

[11]  Micha Sharir,et al.  A subexponential bound for linear programming , 1992, SCG '92.

[12]  Bernd Gärtner,et al.  Fast and Robust Smallest Enclosing Balls , 1999, ESA.

[13]  Philip Wolfe,et al.  Finding the nearest point in A polytope , 1976, Math. Program..

[14]  Emo Welzl,et al.  Smallest enclosing disks (balls and ellipsoids) , 1991, New Results and New Trends in Computer Science.

[15]  A. Peressini,et al.  The Mathematics Of Nonlinear Programming , 1988 .

[16]  Kazuyuki Sekitani,et al.  A recursive algorithm for finding the minimum norm point in a polytope and a pair of closest points in two polytopes , 1993, Math. Program..

[17]  Geert-Jan Giezeman,et al.  On the design of CGAL a computational geometry algorithms library , 2000 .