ebook img

Algorithms - Parallel and Sequential PDF

358 Pages·2019·6.184 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 Algorithms - Parallel and Sequential

Algorithms: Parallel and Sequential UmutA.AcarandGuyE.Blelloch February2019 (cid:13)c 2019UmutA.AcarandGuyE.Blelloch UmutA.Acar CarnegieMellonUniversity DepartmentofComputerScienceGHC9231 PittsburghPA15213USA GuyE.Blelloch CarnegieMellonUniversity DepartmentofComputerScienceGHC9211 PittsburghPA15213USA Contents 1 Introduction 1 1.1 Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 ParallelHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 ParallelSoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Work,Span,ParallelTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 WorkandSpan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 WorkEfficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Specification,Problem,andImplementation 9 2.1 AlgorithmSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 DataStructureSpecification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 GenomeSequencing 13 3.1 GenomeSequencingProblem . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.2 SequencingMethods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 4 CONTENTS 3.1.3 GenomeSequencingProblem . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.4 UnderstandingtheStructureoftheProblem . . . . . . . . . . . . . . 18 3.2 AlgorithmsforGenomeSequencing . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 BruteForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.2 BruteForceReloaded. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.3 ShortestSuperstringsbyAlgorithmicReduction . . . . . . . . . . . . 22 3.2.4 TravelingSalespersonProblem . . . . . . . . . . . . . . . . . . . . . . 22 3.2.5 ReducingShortestSuperstringstoTSP . . . . . . . . . . . . . . . . . 23 3.2.6 GreedyAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 ConcludingRemarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 I Background 31 4 SetsandRelations 33 4.1 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5 GraphTheory 37 5.1 BasicDefinitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2 WeightedGraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.3 Subgraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.4 Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5 GraphPartition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.6 Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 CONTENTS 5 II ALanguageforSpecifyingAlgorithms 47 6 LambdaCalculus 49 6.1 SyntaxandSemantics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2 ParallelismandReductionOrder . . . . . . . . . . . . . . . . . . . . . . . . . 50 7 TheSPARCLanguage 53 7.1 SyntaxandSemanticsofSPARC . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.2 DerivedSyntaxforLoops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8 FunctionalAlgorithms 63 8.1 PureFunctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.1.1 SafeforParallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.1.2 BenignEffects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.2 FunctionsasValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.3 FunctionalAlgorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 III AnalysisofAlgorithms 69 9 Asymptotics 71 9.1 Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.2 Big-O,big-Omega,andbig-Theta . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.3 SomeConventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 10 CostModels 77 10.1 Machine-BasedCostModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.1.1 RAMModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6 CONTENTS 10.1.2 PRAM:ParallelRandomAccessMachine . . . . . . . . . . . . . . . . 78 10.2 LanguageBasedModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 10.2.1 TheWork-SpanModel . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 10.2.2 Scheduling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 11 Recurrences 87 11.1 TheBasics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 11.2 Someconventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 11.3 TheTreeMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 11.4 TheBrickMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 11.5 SubstitutionMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11.6 MasterMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 IV Sequences 99 12 Introduction 101 12.1 DefiningSequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 13 TheSequenceAbstractDataType 105 13.1 TheAbstractDataType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.2 BasicFunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 13.3 Tabulate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 13.4 MapandFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 13.5 Subsequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 13.6 AppendandFlatten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 13.7 UpdateandInject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 CONTENTS 7 13.8 Collect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.9 AggregationbyIteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.10AggregationbyReduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 13.11AggregationwithScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 14 ImplementationofSequences 121 14.1 AParametricImplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 14.2 AnArray-BasedImplementation . . . . . . . . . . . . . . . . . . . . . . . . . 124 15 CostofSequences 127 15.1 CostSpecifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 15.2 ArraySequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 15.3 TreeSequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 15.4 ListSequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 16 Examples 137 16.1 MiscellaneousExamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 16.2 ComputingPrimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 17 EphemeralandSingle-ThreadedSequences 145 17.1 PersistentandEmphemeralImplementations . . . . . . . . . . . . . . . . . . 145 17.2 EphemeralSequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 17.3 Single-ThreadedSequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 17.3.1 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 8 CONTENTS V AlgorithmDesignAndAnalysis 149 18 BasicTechniques 151 18.1 AlgorithmicReduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 18.2 BruteForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 19 DivideandConquer 157 19.1 DivideandConquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 19.2 MergeSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 19.3 SequenceScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 19.4 EuclideanTravelingSalespersonProblem . . . . . . . . . . . . . . . . . . . . 162 19.5 DivideandConquerwithReduce . . . . . . . . . . . . . . . . . . . . . . . . . 165 20 Contraction 167 20.1 ContractionTechnique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 20.2 ReducewithContraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 20.3 ScanwithContraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 21 MaximumContiguousSubsequenceSum 173 21.1 TheProblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 21.2 BruteForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 21.3 ApplyingReduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 21.3.1 AuxiliaryProblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 21.3.2 ReductiontoMCSSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 21.3.3 ReductiontoMCSSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 21.4 DivideAndConquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 21.4.1 AFirstSolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 CONTENTS 9 21.4.2 DivideAndConquerwithStrengthening . . . . . . . . . . . . . . . . 187 VI Probability 193 22 ProbabilityTheory 195 22.1 ProbabilitySpaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 22.2 PropertiesofProbabilitySpaces . . . . . . . . . . . . . . . . . . . . . . . . . . 197 22.2.1 TheUnionBound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 22.2.2 ConditionalProbability . . . . . . . . . . . . . . . . . . . . . . . . . . 198 22.2.3 LawofTotalProbability . . . . . . . . . . . . . . . . . . . . . . . . . . 198 22.2.4 Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 23 RandomVariables 201 23.1 ProbabilityMassFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 23.2 Bernoulli,Binomial,andGeometricRVs . . . . . . . . . . . . . . . . . . . . . 203 23.3 FunctionsofRandomVariables . . . . . . . . . . . . . . . . . . . . . . . . . . 204 23.4 Conditioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 23.5 Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 24 Expectation 207 24.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 24.2 Markov’sInequality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 24.3 ComposingExpectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 24.4 LinearityofExpectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 24.5 ConditionalExpectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 10 CONTENTS VII Randomization 213 25 Introduction 215 25.1 RandomizedAlgorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 25.1.1 AdvantagesofRandomization . . . . . . . . . . . . . . . . . . . . . . 216 25.1.2 DisadvantagesofRandomization. . . . . . . . . . . . . . . . . . . . . 218 25.2 AnalysisofRandomizedAlgorithms . . . . . . . . . . . . . . . . . . . . . . . 218 26 OrderStatistics 221 26.1 TheOrderStatisticsProblem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 26.2 RandomizedAlgorithmforOrderStatistics . . . . . . . . . . . . . . . . . . . 221 26.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 26.4 IntuitiveAnalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 26.4.1 CompleteAnalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 27 Quicksort 229 27.1 TheQuickSortAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 27.2 AnalysisofQuickSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 27.2.1 Intuition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 27.2.2 TheAnalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 27.2.3 AlternativeAnalysisofQuickSort . . . . . . . . . . . . . . . . . . . . 238 27.3 ConcludingRemarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 VIII BinarySearchTrees 241 28 TheBinarySearchTreesADT 243 28.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

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.