CS 333 Introduction General information Goals CS 333

  • Slides: 10
Download presentation
CS 333 - Introduction • General information • Goals CS 333/ Topic 1 1

CS 333 - Introduction • General information • Goals CS 333/ Topic 1 1

Goals of the course: • Prepare students for: – – – – – Future

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 CS 333/ Topic 1 2

Using critical thinking for problem solving • Considering different approaches for solving a problem

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 CS 333/ Topic 1 3

Presenting Commonly used algorithms • • Search (sequential, binary) Sort (mergesort, heapsort, quicksort, etc.

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 CS 333/ Topic 1 4

Well known problem • Problem: Given a map of North America, find the best

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 CS 333/ Topic 1 5

Another well known problem • Problem: You got a job as a paper person.

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? CS 333/ Topic 1 6

Another well known problem (continued) • No efficient algorithm to general problem • Many

Another well known problem (continued) • No efficient algorithm to general problem • Many heuristic and approximation algorithms. • Choose appropriate one CS 333/ Topic 1 7

Design Methods • • • Divide and conquer Greedy Dynamic programming Backtrack Branch and

Design Methods • • • Divide and conquer Greedy Dynamic programming Backtrack Branch and bound CS 333/ Topic 1 8

Not addressed • • Genetic algorithms Neural net algorithms Parallel algorithms Algebraic methods CS

Not addressed • • Genetic algorithms Neural net algorithms Parallel algorithms Algebraic methods CS 333/ Topic 1 9

The theory of NP completeness • Many common problems are NPcomplete ( traveling salesperson,

The theory of NP completeness • Many common problems are NPcomplete ( traveling salesperson, knapsack, . . . ) • Fast algorithms for solving NPcomplete problems probably don’t exist • Techniques such as approximation algorithms are used CS 333/ Topic 1 10