CS333/ Topic 11 CS333 - Introduction CS333 - Introduction General information Goals
CS333/ Topic 12 Goals of the course: Prepare students for: –Future technical challenges –Using critical thinking for problem solving –Implementing algorithms efficiently and correctly –Arguing correctness –Analyzing time complexity –Presenting common algorithms (building blocks) –Learning to design using well known methods –Comparing algorithms –Introduce: Approximation and randomized algorithms The theory of NP-completeness
CS333/ Topic 13 Using critical thinking for problem solving Considering different approaches for solving a problem (for example dynamic vectors) Analyzing the merits of each Considering different implementations for a chosen approach (for example Prim’s algorithm) Analyzing the merit of the different implementation
CS333/ Topic 14 Presenting Commonly used algorithms Search (sequential, binary) Sort (mergesort, heapsort, quicksort, etc.) Traversal algorithms (breadth, depth, etc.) Shortest path (Floyd, Dijkstra) Spanning tree (Prim, Kruskal) Knapsack Traveling salesman Bin packing
CS333/ Topic 15 Well known problem Problem : Given a map of North America, find the best route from Binghamton to Toronto? Well known problem: what is it? Many efficient algorithms Choose appropriate one
CS333/ Topic 16 Another well known problem Problem : You got a job as a paper person. You want to find the shortest tour from your home to every person on your list? Well known problem: what is it ?
CS333/ Topic 17 Another well known problem (continued) No efficient algorithm to general problem Many heuristic and approximation algorithms. Choose appropriate one
CS333/ Topic 18 Design Methods Divide and conquer Greedy Dynamic programming Backtrack Branch and bound
CS333/ Topic 19 Not addressed Genetic algorithms Neural net algorithms Parallel algorithms Algebraic methods
CS333/ Topic 110 The theory of NP completeness Many common problems are NP- complete ( traveling salesperson, knapsack,...) Fast algorithms for solving NP- complete problems probably don’t exist Techniques such as approximation algorithms are used