CS4102 Algorithms Fall 2019
1 CS4102 Algorithms Fall 2019
Edsger Dijkstra Al-Khwarizmi Alan Turing Ada Lovelace
David Wu Gauss Robbie Hott Robert Tarjan
Tony Hoare Donald Knuth Stephen Cook 2 What is an algorithm?
• In mathematics and computer science, an algorithm is a self-contained sequence of actions to be performed. Algorithms can perform calculation, data processing and automated reasoning tasks. [Wikipedia Aug 2018] • In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems. Algorithms can perform calculation, data processing and automated reasoning tasks. [Wikipedia Jan 2019] • In mathematics and computer science, an algorithm is a set of instructions, typically to solve a class of problems or perform a computation. Algorithms are unambiguous specifications for performing calculation, data processing, automated reasoning, and other tasks. [Wikipedia Aug 2019] • An algorithm is a step by step procedure to solve logical and mathematical problems. [Simple English Wikipedia Aug 2019] • Motivating example Need an accurate approximation �
How much concrete do I need?
4.3km (2.7mi) diameter � Approximation Algorithm
� = 3.14159265359...
1
Circumference = 2� � Approximation Algorithm
� = 3.14159265359...
Perimeter > 2� > Perimeter � Approximation Algorithm
� = 3.14159265359...
1 1
1
2� > Perimeter = 6 � Approximation Algorithm
� = 3.14159265359... 1 digit correct Solve for � � 2 2 � � = 1 � 3 2
�
12 = Perimeter > 2� > Perimeter = 6 3 3.46 > � > 3 � Approximation Algorithm
� = 3.14159265359... 3 digits correct
20 20 6 + =Perimeter > 2� > Perimeter = 6 + 70 3.14285 > � > 3.14084 71 How to analyze this approach?
• How fast do we “converge?” • How much work is needed to do better? Another Algorithm
• https://youtu.be/HEfHFsfGXjs • Look up and explain the solution for extra credit!
Better � Approximation (Ramanujan)