Complexity Classes

Complexity Classes

Complexity Classes CSC 540 Christopher Siu 1 / 15 P Definition A complexity class is a set of languages decidable by a Turing machine within similar resource bounds. Practically, a complexity class is a set of problems of similar computational (typically, time) complexity. Definition P is the class of languages decidable by a Turing machine in polynomial time. Practically, P is the class of problems that can be solved in polynomial time. 2 / 15 NP Definition NP (“nondeterministic polynomial”) is the class of languages decidable by a nondeterministic Turing machine in polynomial time. Practically, NP is the class of problems for which a solution can be checked in polynomial time. Non- Deterministic > q0 deterministic qf “Checker” “Guesser” 3 / 15 NP-hard and NP-complete Definition NP-hard is the class of problems at least as hard as every other problem in NP. Definition NP-complete is the class of problems in both NP and NP-hard. In other words, NP-complete includes the hardest problems whose solutions are still efficiently checkable. Example The Traveling Salesperson Problem is NP-hard. The decision version of TSP is NP-complete. 4 / 15 Other Complexity Classes EXP is the class of problems solvable in exponential time. NEXP is the class of problems checkable in exponential time. …classes for probabilistic Turing machines… …classes for quantum computers… …classes for space complexity… Definition A problem in P is often called tractable. An intractable problem might still be solvable, but the algorithm is probably not practical. 5 / 15 Complexity Classes all problems NP-hard NP-complete NP P 6 / 15 Reductions Definition A reduction from a problem A to a problem B comprises: An algorithm f , transforms instances of A into those of B and An algorithm h, transforms solutions of B into those of A Algorithm for A Solution Solution h Instance Instance Algorithm to B to A f of A of B for B No sol’n No solution to B to A 7 / 15 Reductions A reduction uses an algorithm for B to solve A. It is typically understood that the complexity of f and h is negligible compared to that of the algorithm for B. Corollary If A can be reduced to B, then B is at least as hard as A. If B was easier than A, the algorithm for B could be used to solve A, making A exactly as hard as B. 8 / 15 Maximum Element to Sorting MaxElement Sorted Maximum h Unsorted Unsorted Magic sequence element f sequence sequence Sort n/a n/a Where: f does nothing. MagicSort sorts the sequence in descending order. h returns the first element of the sequence. 9 / 15 SAT to Clique Definition The boolean satisfiability problem, SAT, asks whether a proposition is satisifiable. This is typically restricted to propositions of n clauses in CNF, to eliminate trivial cases. Definition The clique problem asks whether an undirected graph G contains a complete subgraph of n vertices. 10 / 15 SAT to Clique Given a proposition of n clauses in CNF: A vertex pi represents a variable p in clause i. Two vertices pi, qj are adjacent iff i 6= j and p 6≡ :q. …the proposition is satisfiable iff there exists a clique of n vertices. Example Given (p _ q _ r) ^ (:p _ r) ^ (:q _:r): r1 q1 :p2 p1 r2 :r3 :q3 11 / 15 Clique to Subgraph Isomorphism Definition The subgraph isomorphism problem asks whether a graph G contains a subgraph isomorphic to another graph H. This is a generalization of the clique problem. The clique problem is equivalent to asking whether a graph G contains a subgraph isomorphic to Kn. 12 / 15 Karp’s Twenty-One Problems In 1972, Richard Karp showed that 21 problems were NP-complete, including: Satisfiability Hamiltonian cycle Integer programming 3-SAT Clique Graph coloring Set packing Knapsack Vertex cover Max cut If any of these is solvable in polynomial time, they all are. 13 / 15 P and NP The problems in NP-complete have solutions which can be checked efficiently but not found efficiently. Example Consider SAT, the boolean satisfiability problem. A solution can be checked in polynomial time. A solution can be found in worst-case exponential time. If P = NP, then there exist polynomial time algorithms to solve NP-complete problems — we haven’t found them yet. If P 6= NP, then there exist NP-complete problems which we will never be able to solve in polynomial time. 14 / 15 Questions? https://users.csc.calpoly.edu/~cesiu/csc540/slides/complexity.pdf 15 / 15.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us