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

data structures in java
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 1

Data Structures in Java

Session 22 Instructor: Bert Huang http://www.cs.columbia.edu/~bert/courses/3134

slide-2
SLIDE 2

Announcements

  • Homework 5 solutions posted
  • Homework 6 to be posted this weekend
  • Final exam Thursday, Dec. 17th, 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

slide-3
SLIDE 3

Review

  • Sorting Algorithm Examples
  • QuickSort space clarification
  • External sorting*
slide-4
SLIDE 4

Todayʼs Plan

  • Correction on external sorting
  • Complexity Classes
  • P, NP, NP-Complete, NP-Hard
slide-5
SLIDE 5

External Sorting

Disk 3 Disk 2 Disk 1 Disk 0

slide-6
SLIDE 6

Disk 3 Disk 2 Disk 1 Disk 0

External Sorting

slide-7
SLIDE 7

Disk 3 Disk 2 Disk 1 Disk 0

External Sorting

slide-8
SLIDE 8

Disk 3 Disk 2 Disk 1 Disk 0

External Sorting

slide-9
SLIDE 9

Disk 3 Disk 2 Disk 1 Disk 0

External Sorting

slide-10
SLIDE 10

Complexity of Problems

  • Weʼve been concerned with the complexity
  • f 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

slide-11
SLIDE 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?

slide-12
SLIDE 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

slide-13
SLIDE 13

Probable Complexity Class Hierarchy

P NP Undecidable NP-Complete NP-Hard

slide-14
SLIDE 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

slide-15
SLIDE 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
slide-16
SLIDE 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
  • ther NP-Complete problems:
  • polynomial time algorithm to convert the

input and output of algorithms

slide-17
SLIDE 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
slide-18
SLIDE 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
slide-19
SLIDE 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

slide-20
SLIDE 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
slide-21
SLIDE 21

P?

Complexity Class Hierarchy

P? NP Undecidable NP-Complete NP-Hard

slide-22
SLIDE 22

P Problems

  • Most problems weʼve solved
  • Proving a polynomial (or logarithmic) bound
  • n 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
  • dd degree.
slide-23
SLIDE 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

slide-24
SLIDE 24

Euler Circuit Example

2 3 1 5 6 4 7

slide-25
SLIDE 25

7

Euler Circuit Example

2 3 1 5 6 4

1

slide-26
SLIDE 26

7

Euler Circuit Example

2 3 1 5 6 4

1 2

slide-27
SLIDE 27

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3

slide-28
SLIDE 28

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1

slide-29
SLIDE 29

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4

slide-30
SLIDE 30

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3

slide-31
SLIDE 31

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6

slide-32
SLIDE 32

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4

slide-33
SLIDE 33

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4 5

slide-34
SLIDE 34

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4 5 2

slide-35
SLIDE 35

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4 5 2 6

slide-36
SLIDE 36

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4 5 2 6 7

slide-37
SLIDE 37

7

Euler Circuit Example

2 3 1 5 6 4

1 2 3 1 4 3 6 4 5 2 6 7 5

slide-38
SLIDE 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

slide-39
SLIDE 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

slide-40
SLIDE 40

NP-Complete Problems Hamiltonian Path

  • Given a graph with N nodes, is there a

path that visits each node exactly once?

slide-41
SLIDE 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
slide-42
SLIDE 42

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

slide-43
SLIDE 43

Reading

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