1
play

1 Nearest Neighbor Heuristic Nearest Neighbor Heuristic Start at - PDF document

Algorithms: definition &6($OJRULWKPVDQG &RPSXWDWLRQDO&RPSOH[LW\ Procedure to accomplish a task or solve a well-specified problem $OJRULWKPVDQG(IILFLHQF\ Well-specified: know what


  1. Algorithms: definition &6(�������$OJRULWKPV�DQG� &RPSXWDWLRQDO�&RPSOH[LW\ ❚ Procedure to accomplish a task or solve a well-specified problem ���$OJRULWKPV�DQG�(IILFLHQF\ ❙ Well-specified: know what all possible inputs look like and what output looks like given them Winter 2002 ❙ Ex: sorting names Instructor: Larry Ruzzo ❙ Ex: checking for primality TA: Justin Campbell TA: Bill Pentney 2 1 Algorithms: an example problem Printed Circuit Board ❚ Printed circuit-board company has a robot arm that solders components to the board ❚ Time to do it depends on ❙ total distance the arm must move from initial rest position around the board and back to the initial positions ❚ For each board design, must figure out good order to do the soldering 3 4 Printed Circuit Board A well-defined Problem ❚ Input: Given a set S of n points in the plane ❚ Output: The shortest cycle tour that visits each point in the set S . ❚ How might you solve it? 5 6 1

  2. Nearest Neighbor Heuristic Nearest Neighbor Heuristic ❚ Start at some point p 0 p 1 p 0 ❚ Walk first to its nearest neighbor p 1 ❚ Repeatedly walk to the nearest unvisited neighbor until all points have been visited p 6 ❚ Then walk back to p 0 7 8 An input where it works badly Revised idea - Closest Pairs first ❚ Repeatedly pick the closest pair of points p 0 to join so that the result can still be part of a single loop in the end 16 4 1 2 8 1 ❙ can pick endpoints of line segments already created ❚ How does this work on our bad example? 9 10 Another bad example Another bad example 1+ √ 10 vs 3 1 1 1.5 1.5 1.5 1.5 11 12 2

  3. Something that works Efficiency ❚ The two incorrect algorithms were greedy ❙ they made choices and never reconsidered their choices ❚ For each of the n! orderings of the points ❙ often it does not work check the length of the cycle you get ❘ when it does the algorithms are typically efficient ❚ Our correct algorithm is incredibly slow ❚ Keep the best one ❙ 20! is so large that counting to one billion in a second it would still take 2.4 billion seconds ❘ (around 70 years!) 13 14 Measuring efficiency: The RAM model We left out things but... ❚ Things we’ve dropped ❚ RAM = Random Access Machine ❙ memory hierarchy ❘ disk, caches, registers have many orders of magnitude ❚ Time ≈ # of instructions executed in an differences in access time ideal assembly language ❙ not all instructions take the same time in practice ❚ However, ❙ each simple operation (+,*,-,=,if,call) takes ❙ the RAM model is useful for designing algorithms and one time step measuring their efficiency ❙ each memory access takes one time step ❙ one can usually tune implementations so that the hierarchy etc. is not a huge factor ❚ No bound on the memory 15 16 Efficiency: What kind of analysis? Pros and cons: ❚ Best-case ❚ Problem size n ❙ unrealistic overselling ❙ can tune an algorithm so it works on one easy input ❙ Worst-case complexity : max # steps ❚ Worst-case algorithm takes on any input of size n ❙ a fast algorithm has a comforting guarantee ❙ Best-case complexity: min # steps ❙ no way to cheat by hard-coding special cases algorithm takes on any input of size n ❙ maybe too pessimistic ❙ Average-case complexity : avg # steps ❚ Average-case algorithm takes on inputs of size n ❙ over what distribution? ❙ different people may have different average problems 17 18 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend