data structures in java
play

Data Structures in Java Session 22 Instructor: Bert Huang - PowerPoint PPT Presentation

Data Structures in Java Session 22 Instructor: Bert Huang http://www.cs.columbia.edu/~bert/courses/3134 Announcements Homework 5 solutions posted Homework 6 to be posted this weekend Final exam Thursday, Dec. 17 th , 4-7 PM,


  1. Data Structures in Java Session 22 Instructor: Bert Huang http://www.cs.columbia.edu/~bert/courses/3134

  2. Announcements • Homework 5 solutions posted • Homework 6 to be posted this weekend • Final exam Thursday, Dec. 17 th , 4-7 PM, Hamilton 602 (this room) • same format as midterm (open book/notes) • Distinguished Lecture: Barbara Liskov, MIT. Turing Award Winner 2009. 11 AM Monday. Davis Auditorium, CEPSR/Schapiro

  3. Review • Sorting Algorithm Examples • QuickSort space clarification • External sorting*

  4. Today ʼ s Plan • Correction on external sorting • Complexity Classes • P, NP, NP-Complete, NP-Hard

  5. External Sorting Disk 3 Disk 2 Disk 1 Disk 0

  6. External Sorting Disk 3 Disk 2 Disk 1 Disk 0

  7. External Sorting Disk 3 Disk 2 Disk 1 Disk 0

  8. External Sorting Disk 3 Disk 2 Disk 1 Disk 0

  9. External Sorting Disk 3 Disk 2 Disk 1 Disk 0

  10. Complexity of Problems • We ʼ ve been concerned with the complexity of algorithms • It is important to also consider the complexity of problems • Understanding complexity is important for theory, and also for practice • understanding the hardness of problems helps us build better algorithms

  11. Three Graph Problems • Euler Path: does a path exist that uses every edge exactly once? • Hamiltonian Path: does a path exist that visits every node exactly once? • Traveling Salesman: find the shortest path that visits every node exactly once?

  12. Complexity Classes • P - solvable in polynomial time • NP - solvable in polynomial time by a nondeterministic computer • i.e., you can check a solution in polynomial time • NP-complete - a problem in NP such that any problem in NP is polynomially reducible to it • Undecidable - no algorithm can solve the problem

  13. Probable Complexity Class Hierarchy P NP NP-Complete NP-Hard Undecidable

  14. Polynomial Time P • All the algorithms we cover in class are solvable in polynomial time • An algorithm that runs in polynomial time is considered efficient • A problem solvable in polynomial time is considered tractable

  15. Nondeterministic Polynomial Time NP • Consider a magical nondeterministic computer • infinitely parallel computer • Equivalently, to solve any problem, check every possible solution in parallel • return one that passes the check

  16. NP-Complete • Special class of NP problems that can be used to solve any other NP problem • Hamiltonian Path, Satisfiability, Graph Coloring etc. • NP-Complete problems can be reduced to other NP-Complete problems: • polynomial time algorithm to convert the input and output of algorithms

  17. NP-Hard • A problem is NP-Hard if it is at least as complex as all NP-Complete problems • NP-hard problems may not even be NP

  18. Undecidable • No algorithm can solve undecidable problems • halting problem - given a computer program, determine if the computer program will finish • Sketch of undecidability proof: Assume we have an algorithm that detects infinite loops • Write program LOOP(P) that runs P on itself • If P(P) halts, infinite loop, otherwise output

  19. Halting Problem LOOP(P): If P(P) will halt: infinite loop If P(P) runs forever: output • What happens if we call LOOP(LOOP)? LOOP(LOOP): If LOOP(LOOP) will halt: infinite loop If LOOP(LOOP) runs forever: output

  20. P vs. NP • So far, nobody has proven a super-polynomial lower bound on any NP-Complete problems, • nor has anyone found a polynomial time algorithm for an NP-complete problem • Therefore no problem is proven to be in one class but not the other; • it is unknown if P and NP are the same

  21. Complexity Class Hierarchy P? P? NP NP-Complete NP-Hard Undecidable

  22. P Problems • Most problems we ʼ ve solved • Proving a polynomial (or logarithmic) bound on any algorithm proves a problem is in P • Euler paths - does a path exist that uses every edge? • Return if there are zero or two nodes with odd degree.

  23. Finding an Euler Circuit • Run a partial DFS; search down a path until you need to backtrack (mark edges instead of nodes) • At this point, you will have found a circuit • Find first node along the circuit that has unvisited edges; run a DFS starting with that edge • Splice the new circuit into the main circuit, repeat until all edges are visited

  24. Euler Circuit Example 1 2 3 4 5 6 7

  25. Euler Circuit Example 1 1 2 3 4 5 6 7

  26. Euler Circuit Example 1 1 2 2 3 4 5 6 7

  27. Euler Circuit Example 1 1 2 2 3 3 4 5 6 7

  28. Euler Circuit Example 1 1 2 2 3 3 1 4 5 6 7

  29. Euler Circuit Example 1 1 2 2 3 4 3 4 1 5 6 7

  30. Euler Circuit Example 1 1 2 2 3 4 3 4 3 1 5 6 7

  31. Euler Circuit Example 1 1 2 2 3 4 3 4 6 3 5 6 1 7

  32. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 3 7 1

  33. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 5 7 3 1

  34. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 5 7 2 3 1

  35. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 5 7 6 2 3 1

  36. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 5 7 6 7 2 3 1

  37. Euler Circuit Example 1 1 2 2 3 4 3 4 6 4 5 6 5 7 6 7 5 2 3 1

  38. NP-Complete Problems Satisfiability • Given Boolean expression of N variables, can we set variables to make expression true? • First NP-Complete proof because Cook ʼ s Theorem gave polynomial time procedure to convert any NP problem to a Boolean expression • I.e., if we have efficient algorithm for Satisfiability, we can efficiently solve any NP problem

  39. NP-Complete Problems Graph Coloring • Given a graph is it possible to color with k colors all nodes so no adjacent nodes are the same color? • Coloring countries on a map • Sudoku is a form of this problem. All squares in a row, column and blocks are connected. k = 9

  40. NP-Complete Problems Hamiltonian Path • Given a graph with N nodes, is there a path that visits each node exactly once?

  41. NP-Hard Problems Traveling Salesman • Closely related to Hamiltonian Path problem • Given complete graph G , find the shortest path that visits all nodes • If we are able to solve TSP, we can find a Hamiltonian Path; set connected edge weight to constant, disconnected to infinity • TSP is NP-hard

  42. http://www.tsp.gatech.edu/gallery/itours/usa13509.html

  43. Reading • Weiss 9.7 • http://www.tsp.gatech.edu/

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