CS 454, Section 001 Sonoma State University Spring, 2026
 
Theory of Computation
Instructor: Henry M. Walker

Lecturer, Sonoma State University
Professor Emeritus of Computer Science and Mathematics, Grinnell College

Although much of this course has been well developed in recent semesters, some details may be adjusted from semester to semester.
In particular, the Signature Project for this course satisfies SSU's Upper Division GE Area B Requirement for CS Majors, but details of this project likely vary from instructor to instructor and from semester to semester.
In particular,

Assignment on Class NP and NP-Completeness

  1. Definitions: Consider the terms, "Class NP", "verifier for a language", and "NP-complete".
    Give careful definitions of each of these terms.

  2. A Permutation Sort: One approach for sorting an array of n elements is to generate all n! permutations of the elements and then each is examined to determine which permutation is ordered.

    1. Explain why this algorithm, called a Permutation Sort, has Θ(n * n!).
    2. Since n * n! is not a polynomial, must we conclude that sorting is not in Class P? Explain briefly.
    3. Does this or another analysis prove that sorting is in Class NP? Explain.
  3. Tree Traversals: Consider an [in-order] traversal of a binary search tree with n nodes.

    1. Does this algorithms demonstrate that the problem of traversing a graph is in Class P? Explain.
    2. Does this algorithms demonstrate that the problem of traversing a graph is in Class NP? Explain.
  4. Satisfiability and NP-Completeness: Suppose A and B are problems in class NP.

    1. Recall that the Problem 4 of the Assignment on Turing Machines introduced the notion of a proof summary. Write a proof summary that outlines the idea behind the proof that the Satisfiability Problem (SAT) is NP-Complete.
    2. If A ≤M SAT, does it follow that A is NP-Complete? Justify your conclusion.
    3. If SAT ≤M B, does it follow that B is NP-Complete? Justify your conclusion.
  5. NP-Complete and NP-Hard: Consider the concepts of a NP-Hard problem and an NP-Complete problem.

    1. Can a problem be NP-Hard without being NP-Complete? Explain.
    2. Can a problem be NP-Complete without being NP-Hard? Explain.
created Fall, 2023
revised Fall, 2023
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.