The Convex Hull Problem in Practice Improving the Running Time of the Double Description Method
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by E-LIB Dokumentserver - Staats und Universitätsbibliothek Bremen e x3 a h x2 d x1 f b g c The Convex Hull Problem in Practice Improving the Running Time of the Double Description Method Dissertation zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften - Dr.-Ing. - vorgelegt von Blagoy Genov Fachbereich 3: Mathematik und Informatik The Convex Hull Problem in Practice Improving the Running Time of the Double Description Method Dissertation zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften - Dr.-Ing. - vorgelegt von Blagoy Genov im Fachbereich 3 (Informatik/Mathematik) der Universit¨atBremen im Juli 2014 Tag der m¨undlichen Pr¨ufung:28. Januar 2015 Gutachter: Prof. Dr. Jan Peleska (Universit¨atBremen) Prof. Dr. Udo Frese (Universit¨atBremen) Erkl¨arung Ich versichere, dass ich die von mir vorgelegte Dissertation selbst¨andigund ohne uner- laubte fremde Hilfe angefertigt habe, dass ich alle benutzen Quellen und Hilfsmittel vollst¨andigangegeben habe und dass alle Stellen, die ich w¨ortlich oder dem Sinne nach aus anderen Arbeiten entnommen habe, kenntlich gemacht worden sind. Ort, Datum Unterschrift 3 Zusammenfassung Die Double-Description-Methode ist ein weit verbreiteter Algorithmus zur Berechnung von konvexen H¨ullenund anderen verwandten Problemen. Wegen seiner unkomplizierten Umsetzung wird er oft in der Praxis bevorzugt, obwohl seine Laufzeitkomplexit¨atnicht durch die Gr¨oßeder Ausgabe beeinflusst wird. Aufgrund seiner zunehmenden Bedeutung in der Programmverifikation und der Analyse von metabolischen Netzwerken ist der Bedarf nach schnellen und zuverl¨assigen Implementierungen in den letzten Jahren rasant gestiegen. Bei den aktuellen Anwendungen besteht erhebliches Potenzial zur Verk¨urzung der Rechenzeit. Die Aufz¨ahlungvon benachbarten extremalen Halbgeraden geh¨ortzu den rechenin- tensivsten Aktivit¨ateninnerhalb der Double-Description-Methode und ist damit ein po- tentieller Optimierungskandidat. Zudem ist die praktische Seite dieses kombinatorischen Problems nicht ausgiebig erforscht worden. In dieser Dissertation werden zwei bedeut- same Beitr¨agezur Beschleunigung des Aufz¨ahlungsprozessespr¨asentiert. Zum einen werden die g¨angigenDatenstrukturen evaluiert und daraufhin diverse Optimierungen vorgeschlagen. Ihre Wirksamkeit wird durch empirische Daten demonstriert. Zum an- deren wird ein neuer Nachbarschaftstest f¨urextremale Halbgeraden vorgestellt. Dieser ist eine Weiterentwicklung des bekannten algebraischen Tests mit dem Vorteil, dass re- dundante Rechenoperationen eliminiert werden. Die Korrektheit des neuen Ansatzes wird formal bewiesen. Seine Wirksamkeit bei ausgearteten Problemen wird ebenfalls durch empirische Daten belegt. Nebenl¨aufigkeit ist ein weiterer Aspekt der Double-Description-Methode, der zus¨atz- liche Untersuchung verlangt. Ein neulich vorgestellter Ansatz, aufgebaut nach dem teile- und-herrsche Prinzip, hat vielversprechende Ergebnisse in der Bioinformatik gezeigt. In dieser Dissertation werden allerdings massive praktische Einschr¨ankungen dargelegt. F¨ur eine Klasse von Schnitt-Polytopen hat die vorgestellte Technik betr¨achtliche Erh¨ohung der Rechenzeit verursacht. Dieses Problem wurde umgangen, indem die Methode weit- erentwickelt wurde, um partielle Nebenl¨aufigkeit zu erm¨oglichen. Diese hat sich in prak- tischen Bedingungen als stabil genug erwiesen, obwohl nur moderate Beschleunigung erzielt werden konnte. Im Laufe dieser Arbeit wurde eine neue Implementierung der Double-Description- Methode entwickelt. Diese enth¨altnicht nur die oben angesprochenen konzeptionellen sondern auch viele technische Verbesserungen. Sie ist besonders auf die neuen Gen- erationen von Prozessoren optimiert worden und ist in vielen Aspekten den g¨angigen frei verf¨ugbarenImplementierungen ¨uberlegen. Diese Schlussfolgerung wird durch em- pirische Daten unterst¨utzt. 5 Abstract The double description method is a widely spread algorithm for computation of convex hulls and other related problems. Even though not being output sensitive, it is often preferred in practical applications due to its general simplicity. In recent years, the demand for faster and more reliable implementations has rapidly increased in view of its growing application in program verification, analysis of metabolic networks, etc. Although several implementations are available, there is a considerable potential for further performance related improvements. The enumeration of adjacent extreme rays is arguably the most performance critical part of the double description method and hence a natural candidate for optimization. Moreover, the practical side of this combinatorial problem has not been extensively stud- ied yet. In this dissertation, two significant contributions related to adjacency testing are presented. First, the currently used data structures are revisited and various optimiza- tions are proposed. Empirical evidence is provided to demonstrate their competitiveness. Second, a new adjacency test is introduced. It is a refinement of the well known algebraic test featuring a technique for avoiding redundant computations. Its correctness is for- mally proven. Its superiority in multiple degenerate scenarios is demonstrated through experimental results. Parallel computation is one further aspect of the double description method which de- serves particular attention. A recently introduced divide-and-conquer technique showed promising results in bioinformatic applications. In this dissertation, however, some severe practical limitations are demonstrated. For a class of cut polytopes, the proposed tech- nique caused a serious computational explosion on at least one of the resulting threads. As an alternative, the technique was refined to perform a partial parallel computation which eliminated the described explosion and brought a moderate speed-up. In the course of this work, a new double description implementation was developed. It embodies not only the conceptional improvements presented in this work but also technical ones. It is particularly optimized for the latest generation of processors and is highly competitive with other freely available double description implementations. Empirical evidence is provided to back up that conclusion. 7 Acknowledgements Starting my dissertation four years ago in the working group for operating and dis- tributed systems, I knew very little about convex hulls and the problems related to them. To be honest, I had never planned to write a thesis on that subject. But as time went by, one open problem led to another, until I found myself working on that challenging but very interesting subject. I owe my deepest gratitude to my advisor Professor Jan Peleska for his patience and the freedom he gave me to put my ideas into realization. Without his support, this work would not have been possible. I wish to extend special thanks to Professor Wen-ling Huang for helping me polish the formal proofs. I am also very grateful to my colleges Florian Lapschies and Elena Gorbachuk for their readiness to proofread my work. Florian had to endure countless discussions on software efficacy, performance and optimization. I deeply appreciate that. Last but not least, I wish to thank my family for all their support and encouragement. I could hardly imagine finishing this work without having my wife Genka by myside. Hamburg, Juni 2014 9 Contents 1 Introduction 17 1.1 Objectives and Motivation . 17 1.2 Contributions . 18 1.3 Thesis Overview . 20 1.4 Notation and Conventions . 20 2 Preliminaries: Linear Inequalities and Polyhedra 21 2.1 Polyhedra, Polyhedral Cones and Polytopes . 21 2.2 Faces, Extreme Rays and Vertices . 24 2.3 Duality . 27 2.3.1 Properties of Duality . 27 2.3.2 Duality of Polytopes . 29 2.3.3 Duality of Cones . 33 2.4 Degeneracy . 36 3 The Convex Hull Problem: Theory and Practice 39 3.1 Definition and Related Problems . 39 3.2 Complexity . 41 3.3 Pivoting Algorithms . 42 3.3.1 The Linear Programming Problem . 43 3.3.2 The Simplex Method . 44 3.3.3 Reverse Search . 46 3.3.4 Dual Space Algorithms . 49 3.3.5 Primal Space Algorithms . 51 3.4 Incremental Algorithms . 53 3.4.1 Dual Space Algorithms . 53 3.4.2 Primal Space Algorithms . 55 4 The Double Description Method: Definition and Implementation 59 4.1 Algorithm . 59 4.2 Adjacency Test . 61 4.3 Implementation Details . 63 4.3.1 Extreme Ray Representation . 63 4.3.2 Narrowing and Verification . 65 4.3.3 Bit Pattern Trees . 66 11 Contents 5 Combinatorial Test: Comparison of Data Structures 69 5.1 Generic Binary Tree Container . 69 5.1.1 Requirements and Complexity . 69 5.1.2 Implementation . 70 5.2 Bit Pattern Tree Container . 73 5.2.1 Implementation . 74 5.2.2 Efficacy and Limitations . 75 5.2.3 Query Bits Neutralization . 76 5.2.4 Cross-Narrowing . 79 5.2.5 Highly Degenerate First Verification . 80 5.2.6 The Adjacency Test Revisited . 82 5.3 Extended Bit Pattern Tree Container . 84 5.4 Population Tree Container . 86 5.5 Vantage Point Tree Container . 90 5.6 Experimental Results . 93 6 Algebraic Test: Redundancy Elimination 97 6.1 Active Set Partitioning . 97 6.1.1 Matrix Matroid . 98 6.1.2 Observations . 98 6.1.3 Partitioning Function . 101 6.1.4 Completeness . 102 6.2 Data Structures . 104 6.3 The Refined Algebraic Test . 107 6.3.1 Correctness and Formal Proof . 107 6.3.2 Adjacency Algorithm . 111 6.4 The Double Description Method Enhanced . 116 6.5 Experimental Results . 118 7 Divide and Conquer: Advantages