Csc 172 p np etc
Download
1 / 43

CSC 172 P, NP, Etc - PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on

CSC 172 P, NP, Etc. “Computer Science is a science of abstraction – creating the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.” Aho & Ullman (1995). The process of abstraction.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CSC 172 P, NP, Etc' - ringo


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Csc 172 p np etc
CSC 172 P, NP, Etc


“Computer Science is a science of abstraction – creating the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.”

Aho & Ullman (1995)


The process of abstraction
The process of abstraction the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.”

You can solve problems by wiring up special purpose hardware (hand calculator)

Turing showed that you could abstract hardware configurations

Von Neumann showed that you could abstract away from the hardware (machine languages)

High level languages are an abstraction of low level languages (JAVA/C++ rather than SML)


The process of abstraction1
The process of abstraction the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.”

Data structures are an abstractions in high level languages (“mystack.push(myobject)”)

So, now we can talk about solutions to whole problems

“Similar” problems with “similar” solutions constitute the next level of abstraction


Hard harder impossible
Hard, Harder, Impossible the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.”

Some well-formed computational problems don't have computational solution.

They are “undecidable”. Trick: liar's paradox: “This sentence is false”.

Halts?(x) is a subroutine that is T or F if x (a program) halts or loops.

Oops(x) is

if Halts?(x) then loop-forever() else halt.

Oops(Oops) ??


Some definitions
Some Definitions the right model for thinking about a problem and devising the appropriate mechanizable technique to solve it.”

Exponential time: you have to test every possibility

O(kn)

Polynomial time: you have some clever algorithm

O(nk) Note even n100 is better than exponential


P: A problem that can be solved quickly (in polynomial time) O(nc)

NP: A problem whose solution can be checked for correctness in polynomial time.

NP-hard: A problem such that every problem in NP reduces to it. (Not in NP)

NP-complete (NPC): A problem that is both NP hard and in NP


P: A problem that can be solved quickly (in polynomial time) O(nc)

NP: A problem whose solution can be checked for correctness in polynomial time.

NP-hard: A problem such that every problem in NP reduces to it. (Not in NP)

NP-complete (NPC): A problem that is both NP hard and in NP


The class of problems p
The class of problems “P” O(n

“P” stands for “Polynomial”

The class “P” is the set of problems that have polynomial time solutions

Some problems have solutions that run in O(nc) time

testing for cycles, MWST, Conn. Comps, shortest path, simple sorting,....


Not in the class of problems p
Not in the class of problems “P”? O(n

On the other hand, some problems seem to take time that is exponential O(2n) or worse

TSP, satisfiability, graph coloring


Famous examples
Famous Examples O(n

Travelling Salesman Prob: In undirected weighted graph find path starting and ending at specified vertex, visiting each vertex once, costing <= K.

Satisfiability: e.g. what a, b, c, d, e values make (a v b v ~c)^(d v ~a ve)^(~c v b v d)^(c v ~d v e) true? (3-SAT)

How many colors needed to color graph vertices so no nbrs have same color? How color (= sudoku)?


Same problem if polynomially reducible
Same problem if polynomially reducible O(n

Assume I have boolean fn

satisfiable(String expression)

How do I write

tautology(String expression)


Easy conversion
Easy Conversion O(n

tautology(exp) = no var. assts such that satisfiable(exp) is false.


The class np
The class NP O(n

“NP” stands for “Nondeterministic Polynomial”

Nondeterministic computation: “guess” or “parallelize”

A problem can be solved in nondeterministic polynomial time if:

given a guess at a solution for some instance of size n

we can check that the guess is correct in polynomial time (i.e. the check runs O(nc))


Np takes p time to check
NP takes P time to Check O(n

TSP: does path hit all vertices, cost <= K? linear.

SAT: evaluate the boolean expression with constant (0,1) values: linear.

Colorability: check all edges for diff. colored ends. linear.

Hamiltonian Path: path hits all vertices? linear.


P NP O(n

NP

P

P  NP


NPC O(n

NPC stands for “NP-complete”

Some problems in NP are also in P

-they can be solved as well as checked in O(nc) time

Others, appear not to be solvable in polynomial time

There is no proof that they cannot be solved in polynomial time

But, we have the next best thing to such proof

A theory that says many of these problems are as hard as any in NP

We call these “NP-complete problems”


Not sure
Not sure? O(n

We work to prove equivalence of NPC problems

If we could solve one of them in O(nc) time then all would be solvable in polynomial time (P == NP)

What do we have?

Since the NP-complete problems include many that have been worked on for centuries, there is strong evidence that all NP-complete problems really require exponential time to solve.


Reductions
Reductions O(n

The way a problem is proved NP-complete is to “reduce” a known NP-complete problem to it

We reduce a problem A to a problem B by devising a solution that uses only a polynomial amount of time (to convert the data, make the correspondence) plus a call to a method that solves B


Easiest npc problem
Easiest NPC Problem? O(n

Partition problem: partition list of integers into 2 parts such that sum(part1) = sum(part2)

(3,1,1,2,2,1) -> (1,1,1,2) and (2,3).

Version of subset-sum problem (is there a subset of a list of ints that sums to zero?), Also NPC.

Very good dynamic program and not bad greedy approaches. hence “easy”.


Back to graphs
Back to Graphs O(n

By way of example of a class of problems consider

Cliques & Independent Sets in graphs


Cliques
Cliques O(n

A complete sub-graph of an undirected graph

A set of nodes of some graph that has every possible edge

The clique problem:

Given a graph G and an integer k, is there a clique of at least k nodes?


Example
Example O(n


Example1
Example O(n

A

B

C

D

E

F

G

H


Example2
Example O(n

A

B

C

D

E

F

G

H


Example3
Example O(n

K == 4

ABEF

CGHD

A

B

C

D

E

F

G

H


Independent set
Independent Set O(n

Subset S of the nodes of an undirected graph such that there is no edge between any two members of S

The independent set problem

given a graph G and an integer k, is there an independent set with at least k nodes

(Application: scheduling final exams)

nodes == courses, edges mean that courses have one student in common.

Any guesses on how large the graph would be for UR?


Example independent set
Example independent set O(n

K == 2

AC

AD

AG

AH

B(D,G,H)

Etc..

A

B

C

D

E

F

G

H


Checking solutions
Checking Solutions O(n

Clique, IS, colorability are examples of hard to find solutions “find a clique of n nodes”

But, it’s easy (polynomial time) to check a proposed solution.


Checking
Checking O(n

Check a proposed clique by checking for the existence of the edges between the k nodes

Check for an IS by checking for the non-existence of an edge between any two nodes in the proposed set

Check a proposed coloring by examining the ends of all the edges in the graph


Checking1
Checking O(n

Check a proposed clique by checking for the existence of the edges between the k nodes

Check for an IS by checking for the non-existence of an edge between any two nodes in the proposed set

Check a proposed coloring by examining the ends of all the edges in the graph


Same problem reductions
Same Problem Reductions O(n

Clique to IS

Given a graph G and an integer k we want to know if there is a clique of size k in G

Construct a graph H with the same set of nodes as G and an edge wherever G does not have edges

An independent set in H is a clique in G

Use the “IS” method on H and return its answer


Same problem reductions1
Same Problem Reductions O(n

IS to Clique

Given a graph G and an integer k we want to know if there is an IS of size k in G

Construct a graph H with the same set of nodes as G and an edge wherever G does not have edges

An independent set in H is a clique in G

Use the “clique” method on H and return its answer


Example4
Example O(n

A

B

C

D

E

G


Example5
Example O(n

A

B

C

D

E

G


Example6
Example O(n

A

B

C

D

E

G


Example7
Example O(n

A

B

D

C

E

G


Example8
Example O(n

A

D

C

B

E

G


Example9
Example O(n

A

D

C

B

E

G


Example10
Example O(n

A

D

C

B

E

G

A

B

C

D

E

G


Hamiltonian cycle from TSP O(nMake complete graph from input graph, give original edges cost 1, added edges cost 2, and if there were K original edges solve TSP for K.


ad