Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Computational Complexity: P, NP, and NP-Complete, Slides of Algorithms and Programming

An introduction to computational complexity, focusing on the classes p and np, and the concept of np-completeness. The definitions of tractability, polynomial-time algorithms, optimization and decision problems, and the differences between deterministic and nondeterministic algorithms. It also includes examples of problems in p and np, such as fractional knapsack, mst, sorting, and the satisfiability (sat) problem.

Typology: Slides

2018/2019

Uploaded on 08/04/2019

ashutosh-kumar-14
ashutosh-kumar-14 🇮🇳

1 document

1 / 20

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
P, NP, and NP-Complete
Dr. Ying Lu
ylu@cse.unl.edu
RAIK 283
Data Structures & Algorithms
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Partial preview of the text

Download Computational Complexity: P, NP, and NP-Complete and more Slides Algorithms and Programming in PDF only on Docsity!

P, NP, and NP-Complete

Dr. Ying Lu

ylu@cse.unl.edu

RAIK 283

Data Structures & Algorithms

RAIK 283

Data Structures & Algorithms

Giving credit where credit is due:

» Most of the lecture notes are based on slides

created by Dr. Cusack and Dr. Leubke.

» I have modified them and added new slides

Polynomial-Time Algorithms

Are some problems solvable in polynomial time?

» (^) Of course: many algorithms we’ve studied provide polynomial-time solutions to some problems 

Are all problems solvable in polynomial time?

» (^) No: Turing’s “Halting Problem” is not solvable by any computer, no matter how much time is given 

Most problems that do not yield polynomial-time

algorithms are either optimization or decision

problems.

Optimization/Decision

Problems

Optimization Problems

» (^) An optimization problem is one which asks, “What is the optimal solution to problem X?” » (^) Examples:  (^) 0-1 Knapsack  (^) Fractional Knapsack  (^) Minimum Spanning Tree

 Decision Problems

» (^) An decision problem is one with yes/no answer » (^) Examples:  (^) Does a graph G have a MST of weight  W?

The Class P

P : the class of decision problems that have polynomial-time deterministic algorithms. » (^) That is, they are solvable in O ( p ( n )), where p ( n ) is a polynomial on n » (^) A deterministic algorithm is (essentially) one that always computes the correct answer Why polynomial? » (^) if not, very inefficient » (^) nice closure properties  (^) the sum and composition of two polynomials are always polynomials too

Sample Problems in P

Fractional Knapsack

MST

Sorting

Others?

Sample Problems in NP

Fractional Knapsack

MST

Sorting

Others?

» (^) Hamiltonian Cycle (Traveling Salesman) » (^) Graph Coloring » (^) Satisfiability (SAT)  (^) the problem of deciding whether a given Boolean formula is satisfiable

The Satisfiability (SAT)

Problem

Satisfiability (SAT):

» (^) Given a Boolean expression on n variables, can we assign values such that the expression is TRUE? » (^) Ex: (( x 1x 2 )  (( x 1x 3 )  x 4 ))  x 2 » (^) Seems simple enough, but no known deterministic polynomial time algorithm exists » (^) Easy to verify in polynomial time!

Review: P And NP Summary

 P = set of problems that can be solved in polynomial time

» (^) Examples: Fractional Knapsack, …

 NP = set of problems for which a solution can be verified

in polynomial time

» (^) Examples: Fractional Knapsack,…, Hamiltonian Cycle, CNF SAT, 3-CNF SAT

 Clearly P  NP

 Open question: Does P = NP?

» (^) Most suspect not » (^) An August 2010 claim of proof that P ≠ NP, by Vinay Deolalikar, researcher at HP Labs, Palo Alto, has flaws

NP -complete problems

A decision problem D is NP -complete iff

1. D  NP

  1. every problem in NP is polynomial-time reducible to D

Cook’s theorem (1971): CNF-sat is NP -complete

NP-Hard and NP-Complete

If R is polynomial-time reducible to Q, we denote

this R p Q

Definition of NP-Hard and NP-Complete:

» (^) If all problems R  NP are polynomial-time reducible to Q, then Q is NP-Hard » (^) We say Q is NP-Complete if Q is NP-Hard and Q  NP

 If R 

p Q and R is NP-Hard, Q is also NP-Hard

(why?)

Practical Implication

Given a problem that is known to be NP-Complete

» (^) Try to solve it by designing a polynomial-time algorithm?  (^) Prove P=NP » (^) Alleviate the intractability of such problems  (^) To make some large instances of the problem solvable (like solving some instances of Knapsack problem in polynomial time)  (^) To find good approximations (Chap 12)