ebook img

Algorithm Engineering: Bridging the Gap between Algorithm Theory and Practice PDF

527 Pages·2010·3.37 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Algorithm Engineering: Bridging the Gap between Algorithm Theory and Practice

Lecture Notes in Computer Science 5971 CommencedPublicationin1973 FoundingandFormerSeriesEditors: GerhardGoos,JurisHartmanis,andJanvanLeeuwen EditorialBoard DavidHutchison LancasterUniversity,UK TakeoKanade CarnegieMellonUniversity,Pittsburgh,PA,USA JosefKittler UniversityofSurrey,Guildford,UK JonM.Kleinberg CornellUniversity,Ithaca,NY,USA AlfredKobsa UniversityofCalifornia,Irvine,CA,USA FriedemannMattern ETHZurich,Switzerland JohnC.Mitchell StanfordUniversity,CA,USA MoniNaor WeizmannInstituteofScience,Rehovot,Israel OscarNierstrasz UniversityofBern,Switzerland C.PanduRangan IndianInstituteofTechnology,Madras,India BernhardSteffen TUDortmundUniversity,Germany MadhuSudan MicrosoftResearch,Cambridge,MA,USA DemetriTerzopoulos UniversityofCalifornia,LosAngeles,CA,USA DougTygar UniversityofCalifornia,Berkeley,CA,USA GerhardWeikum MaxPlanckInstituteforInformatics,Saarbruecken,Germany Matthias Müller-Hannemann Stefan Schirra (Eds.) Algorithm Engineering Bridging the Gap between Algorithm Theory and Practice 1 3 VolumeEditors MatthiasMüller-Hannemann Martin-Luther-UniversitätHalle-Wittenberg,InstitutfürInformatik Von-Seckendorff-Platz1,06120Halle,Germany E-mail:[email protected] StefanSchirra Otto-von-GuerickeUniversitätMagdeburg,FakultätfürInformatik Universitätsplatz2,39106Magdeburg,Germany E-mail:[email protected] LibraryofCongressControlNumber:2010931447 CRSubjectClassification(1998):F.2,D.2,G.1-2,G.4,E.1,I.3.5,I.6 LNCSSublibrary:SL1–TheoreticalComputerScienceandGeneralIssues ISSN 0302-9743 ISBN-10 3-642-14865-4SpringerBerlinHeidelbergNewYork ISBN-13 978-3-642-14865-1SpringerBerlinHeidelbergNewYork Thisworkissubjecttocopyright.Allrightsarereserved,whetherthewholeorpartofthematerialis concerned,specificallytherightsoftranslation,reprinting,re-useofillustrations,recitation,broadcasting, reproductiononmicrofilmsorinanyotherway,andstorageindatabanks.Duplicationofthispublication orpartsthereofispermittedonlyundertheprovisionsoftheGermanCopyrightLawofSeptember9,1965, initscurrentversion,andpermissionforusemustalwaysbeobtainedfromSpringer.Violationsareliable toprosecutionundertheGermanCopyrightLaw. springer.com ©Springer-VerlagBerlinHeidelberg2010 PrintedinGermany Typesetting:Camera-readybyauthor,dataconversionbyScientificPublishingServices,Chennai,India Printedonacid-freepaper 06/3180 Preface Thesystematicdevelopmentofefficientalgorithmshasbecomeakeytechnology for all kinds of ambitious and innovative computer applications. With major parts of algorithmic theory and algorithmic practice developing in different di- rections since the 1970sa groupof leading researchersin the field startedabout 15 years ago to coin the new paradigm “Algorithm Engineering”. Its major goal is to bridge the gap between theory and practice. This book is a collection of survey articles on different aspects of Algo- rithmEngineering,writtenbyparticipantsofaGI-Dagstuhlseminarheldduring September3-8,2006.DorotheaWagnerandPeterSanderscameupwiththeidea forthe seminar,andapproachedus to organizeit. Ingeneral,the conceptofthe GI-Dagstuhl seminars is to provide young researchers (mostly PhD students) with the opportunity to be introduced into a new emerging field of computer science.Basedonalistoftopicscollectedbytheorganizers,theparticipantspre- paredoverviewlectures they presentedand discussedwith other participants at the research seminar in Dagstuhl. Each contribution was elaborated afterwards and carefully cross-reviewedby all participants. Chapter 1 gives an introduction into the emerging field of Algorithm Engi- neering and describes its main ingredients. It also serves as an overview for the remaining chapters of the book. The editing process took much longer than expected, partially due to the fact that several aspects of Algorithm Engineering have never been written up before, which gave rise to lengthy internal discussions. But for the major part of the delay, the editors take their responsibility. Since the field of Algorithm Engineering has developed rapidly since the seminar took place, we made an effort to keep the contents up to date. Ideally, our book will be used as an introductiontothefield.Althoughithasnotbeenwrittenasatextbook,itmay well serve as accompanying material and as a reference in class. Asthisbookprojectnowcomestoanend,weareindebtedtomanypeopleand institutions. First of all, we would like to thank the Gesellschaft für Informatik e.V.(GI)fortheirgeneroussupportoftheGI-Dagstuhlseminar,fundingthestay of all participants at Schloss Dagstuhl. We thank the Schloss Dagstuhl Leibniz- Zentrum für Informatik GmbH for their excellent workshop facilities and its hospitality, which provided the basis for a successful seminar. Alfred Hofmann andhisteammadeitpossibletosmoothlypublishthisvolumeintheLNCSseries of Springer. Special thanks go to Annabell Berger, Holger Blaar, and Kathleen Kletsch for their help in the editing process. March 2010 Matthias Müller-Hannemann Stefan Schirra List of Contributors Editors Matthias Müller-Hannemann Stefan Schirra Martin-Luther-Universität Otto-von-Guericke Universität Halle-Wittenberg Magdeburg Institut für Informatik Fakultät für Informatik Von-Seckendorff-Platz 1 Universitätsplatz 2 06120 Halle, Germany 39106 Magdeburg, Germany [email protected] [email protected] Authors Heiner Ackermann Daniel Delling Fraunhofer Institute for Microsoft Research Silicon Valley Industrial Mathematics 1065 La Avenida Fraunhofer-Platz 1 Montain View, CA 94043,USA 67663 Kaiserslautern,Germany [email protected] [email protected] Roman Dementiev Deepak Ajwani Universität Karlsruhe (TH) Aarhus University Department of Computer Science, MADALGO - Center for Massive Algorithmics II Data Algorithmics Am Fasanengarten 5 IT-parken, Aabogade 34 76131 Karlsruhe, Germany 8200 Aarhus N, Denmark [email protected] [email protected] Markus Geyer Eric Berberich Universität Tübingen Max-Planck-Institut für Informatik Wilhelm-Schickard-Institut für Algorithms and Complexity Informatik, Paralleles Rechnen Campus E1 4 Sand 14 66123 Saarbrücken,Germany 72076 Tübingen, Germany [email protected] [email protected] VIII List of Contributors Matthias Hagen Maria Kandyba Bauhaus Universität Weimar Technische Universität Dortmund Faculty of Media, Web Technology Fakultät für Informatik and Information Systems Group Lehrstuhl für Algorithm Engineering Bauhausstr. 11 Otto-Hahn-Str. 14 99423 Weimar, Germany 44227 Dortmund, Germany [email protected] [email protected] Sabine Helwig Sascha Meinert Universität Erlangen-Nürnberg Karlsruhe Institute of Technology Department of Computer Science (KIT) Hardware-Software-Co-Design Institute of Theoretical Informatics, Am Weichselgarten 3 Algorithmics I 91058 Erlangen, Germany Am Fasanengarten 5 [email protected] 76131 Karlsruhe, Germany [email protected] Benjamin Hiller Konrad-Zuse-Zentrumfür Henning Meyerhenke Informationstechnik Berlin (ZIB) Universität Paderborn Department Optimization Department of Computer Science Takustr. 7 Fürstenallee 11 14195 Berlin-Dahlem, Germany 33102 Paderborn, Germany [email protected] [email protected] Roberto Hoffmann Marc Mörig Martin-Luther-Universität Otto-von-Guericke Universität Halle-Wittenberg Magdeburg Institut für Informatik Fakultät für Informatik Von-Seckendorff-Platz 1 Universitätsplatz 2 06120 Halle, Germany 39106 Magdeburg, Germany [email protected] [email protected] Falk Hüffner Hannes Moser Humboldt-Universität zu Berlin Friedrich-Schiller-UniversitätJena Institut für Informatik Institut für Informatik Rudower Chaussee 25 Ernst-Abbe-Platz 2 12489 Berlin, Germany 07743 Jena, Germany [email protected] [email protected] List of Contributors IX Matthias Müller-Hannemann Anna Schulze Martin-Luther-Universität Universität zu Köln Halle-Wittenberg Zentrum für Angewandte Informatik Institut für Informatik (ZAIK) Von-Seckendorff-Platz 1 Gyrhofstr. 8c 06120 Halle, Germany 50931 Köln, Germany [email protected] [email protected] Heiko Röglin Nils Schweer Maastricht University Technische Universität Braunschweig Department of Quantitative Institute of Operating Systems Economics and Computer Networks 6200MD Maastricht,The Netherlands Mühlenpfordtstr. 23 [email protected] 38106 Braunschweig,Germany [email protected] Ivo Rössling Otto-von-GuerickeUniversität Johannes Singler Magdeburg Universität Karlsruhe (TH) Fakultät für Informatik Department of Computer Science, Universitätsplatz 2 Algorithmics II 39106 Magdeburg, Germany Am Fasanengarten 5 [email protected] 76131 Karlsruhe, Germany [email protected] Ulf Schellbach Technische Universität Ilmenau Tobias Tscheuschner Institut für Theoretische Informatik Universität Paderborn Helmholtzplatz 1 Department of Computer Science 98684 Ilmenau, Germany Fürstenallee 11 [email protected] 33102 Paderborn, Germany [email protected] Stefan Schirra Otto-von-GuerickeUniversität Maik Weinard Magdeburg Johann Wolfgang Goethe-Universität Fakultät für Informatik Frankfurt am Main Universitätsplatz 2 Theoretische Informatik 39106 Magdeburg, Germany Robert-Mayer-Str.11-15 [email protected] 60325 Frankfurt am Main, Germany [email protected] Sven Scholz Freie Universität Berlin Institut für Informatik Takustr. 9 14195 Berlin, Germany [email protected] Contents Chapter 1. Foundations of Algorithm Engineering M. Müller-Hannemann, S. Schirra ............................... 1 1.1 Introduction ................................................. 1 1.1.1 Classical Algorithmics .................................. 1 1.1.2 The New Paradigm: Algorithm Engineering................ 2 1.1.3 Towards a Definition of Algorithm Engineering............. 4 1.1.4 Methodology........................................... 5 1.1.5 Visibility of Algorithm Engineering ....................... 6 1.2 Building Blocks of Algorithm Engineering ....................... 7 1.2.1 Modeling of Problems................................... 8 1.2.2 Algorithm Design ...................................... 9 1.2.3 Analysis............................................... 9 1.2.4 Realistic Computer Models .............................. 10 1.2.5 Implementation ........................................ 11 1.2.6 Libraries .............................................. 12 1.2.7 Experiments ........................................... 12 1.2.8 Success Stories of Algorithm Engineering .................. 13 1.2.9 Challenges............................................. 15 1.2.10 Further Topics — Not Covered in This Book............... 15 Chapter 2. Modeling M. Geyer, B. Hiller, S. Meinert ................................. 16 2.1 Introduction ................................................. 16 2.2 Modeling Fundamentals ....................................... 19 2.2.1 Fundamentals.......................................... 19 2.2.2 Problem Analysis....................................... 21 2.2.3 Problem Specification: Examples ......................... 23 2.2.4 Modeling a Solution Approach ........................... 26 2.2.5 Model Assessment...................................... 28 2.2.6 Inherent Difficulties within the Modeling Process ........... 28 2.3 Modeling Frameworks......................................... 30 2.3.1 Graph-Based Models.................................... 31 2.3.2 Mixed Integer Programming ............................. 35 2.3.3 Constraint Programming ................................ 43 2.3.4 Algebraic Modeling Languages ........................... 49 2.3.5 Summary on Modeling Frameworks....................... 53 2.4 Further Issues................................................ 53 2.4.1 Specific Input Characteristics ............................ 55 2.4.2 Problem Decomposition for Complex Applications.......... 55 2.5 Conclusion................................................... 56 XII Contents Chapter 3. Selected Design Issues S. Helwig, F. Hüffner, I. Rössling, M. Weinard .................... 58 3.1 Introduction ................................................. 58 3.2 Simplicity ................................................... 60 3.2.1 Advantages for Implementation .......................... 61 3.2.2 How to Achieve Simplicity?.............................. 61 3.2.3 Effects on Analysis ..................................... 65 3.3 Scalability ................................................... 67 3.3.1 Towards a Definition of Scalability........................ 68 3.3.2 Scalability in Parallel Computing......................... 70 3.3.3 Basic Techniques for Designing Scalable Algorithms......... 73 3.3.4 Scalability in Grid Computing and Peer-to-Peer Networks ... 76 3.4 Time-Space Trade-Offs ........................................ 80 3.4.1 Formal Methods........................................ 82 3.4.2 Reuse and Lookup Tables ............................... 84 3.4.3 Time-Space Trade-Offs in Storing Data ................... 89 3.4.4 Preprocessing.......................................... 92 3.4.5 Brute Force Support.................................... 93 3.5 Robustness .................................................. 95 3.5.1 Software Engineering Aspects ............................ 96 3.5.2 Numerical Robustness Issues............................. 108 3.5.3 Robustness in Computational Geometry................... 113 Chapter 4. Analysis of Algorithms H. Ackermann, H. Röglin, U. Schellbach, N. Schweer ............... 127 4.1 Introduction and Motivation ................................... 127 4.2 Worst-Case and Average-CaseAnalysis.......................... 130 4.2.1 Worst-Case Analysis.................................... 131 4.2.2 Average-CaseAnalysis .................................. 132 4.3 Amortized Analysis ........................................... 134 4.3.1 Aggregate Analysis ..................................... 136 4.3.2 The Accounting Method................................. 136 4.3.3 The Potential Method .................................. 136 4.3.4 Online Algorithms and Data Structures ................... 138 4.4 Smoothed Analysis ........................................... 140 4.4.1 Smoothed Analysis of Binary Optimization Problems ....... 141 4.4.2 Smoothed Analysis of the Simplex Algorithm .............. 151 4.4.3 Conclusions and Open Questions ......................... 158 4.5 Realistic Input Models ........................................ 159 4.5.1 Computational Geometry ............................... 160 4.5.2 Definitions and Notations ............................... 162 4.5.3 Geometric Input Models ................................ 162 4.5.4 Relationships between the Models ........................ 163 4.5.5 Applications ........................................... 164 4.6 Computational Testing ........................................ 168 4.7 Representative Operation Counts............................... 169

Description:
Algorithms are essential building blocks of computer applications. However, advancements in computer hardware, which render traditional computer models more and more unrealistic, and an ever increasing demand for efficient solution to actual real world problems have led to a rising gap between class
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.