General tools for determining problem complexity

  • Authors:
  • Mayur Thakur;Lane A. Hemaspaandra

  • Affiliations:
  • -;-

  • Venue:
  • General tools for determining problem complexity
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Computer scientists, programmers, and engineers need to determine the complexity of computational problems on a daily basis, and they typically ask the following questions: Is the problem easy or hard? If it is easy, is there a really efficient algorithm for the problem? If the problem is hard, how hard is it? Are there large subclasses of problems that are easy? Are there efficient approximation algorithms for the problem? Finding the answers to these questions pertaining to problem classification can be arduous and daunting for someone who is not an expert in the domain. Different problems, even from the same domain, may require vastly different proof techniques for problem classification. Thus, it is highly desirable to have easily applicable tools (theorems, classification tests, algorithms, and dichotomy results) that classify a wide range of problems. In this thesis we provide such general tools for determining the complexity of problems arising in the following settings: boolean circuits, language properties of central complexity classes (such as NP, PP, and ⊕P), cycles in graphs, oracle (database) access, theoretical models of computer simulation, and structural restrictions on the witness functions of nondeterministic polynomial-time Turing machines.