Computability and Complexity Theory

Similar documents
Introduction to Turing Machines. Reading: Chapters 8 & 9

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

Undecidable Problems. Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science May 12, / 65

Introduction to Complexity Theory

NP-Completeness. f(n) \ n n sec sec sec. n sec 24.3 sec 5.2 mins. 2 n sec 17.9 mins 35.

Artificial Intelligence. 3 Problem Complexity. Prof. Dr. Jana Koehler Fall 2016 HSLU - JK

NP Complete Problems. COMP 215 Lecture 20

NP-Completeness. Andreas Klappenecker. [based on slides by Prof. Welch]

Theory of Computation Lecture Notes. Problems and Algorithms. Class Information

NP-Completeness. NP-Completeness 1

Computational Complexity and Intractability: An Introduction to the Theory of NP. Chapter 9

Data Structures in Java

Automata Theory CS Complexity Theory I: Polynomial Time

NP-Completeness. Subhash Suri. May 15, 2018

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

CS3719 Theory of Computation and Algorithms

CS6901: review of Theory of Computation and Algorithms

Analysis of Algorithms. Unit 5 - Intractable Problems

Comparison of several polynomial and exponential time complexity functions. Size n

Theory of Computation CS3102 Spring 2014 A tale of computers, math, problem solving, life, love and tragic death

P,NP, NP-Hard and NP-Complete

TURING MAHINES

CS151 Complexity Theory. Lecture 1 April 3, 2017

The decision problem (entscheidungsproblem), halting problem, & Turing machines. CS 350 Fall 2018 gilray.org/classes/fall2018/cs350/

CS Lecture 29 P, NP, and NP-Completeness. k ) for all k. Fall The class P. The class NP

Final exam study sheet for CS3719 Turing machines and decidability.

Summer School on Introduction to Algorithms and Optimization Techniques July 4-12, 2017 Organized by ACMU, ISI and IEEE CEDA.

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

NP-Completeness. Until now we have been designing algorithms for specific problems

Spring Lecture 21 NP-Complete Problems

Theory of Computation

Decidability (What, stuff is unsolvable?)

Easy Problems vs. Hard Problems. CSE 421 Introduction to Algorithms Winter Is P a good definition of efficient? The class P

CHAPTER 3 FUNDAMENTALS OF COMPUTATIONAL COMPLEXITY. E. Amaldi Foundations of Operations Research Politecnico di Milano 1

Advanced Topics in Theoretical Computer Science

Computational Complexity

Theory of Computation (IX) Yijia Chen Fudan University

NP Completeness and Approximation Algorithms

NP-COMPLETE PROBLEMS. 1. Characterizing NP. Proof

Most General computer?

U.C. Berkeley CS278: Computational Complexity Professor Luca Trevisan August 30, Notes for Lecture 1

Multiple Sequence Alignment: Complexity, Gunnar Klau, January 12, 2006, 12:

Theory of Computation Chapter 9

CSE 105 THEORY OF COMPUTATION

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181.

Chapter 2 Algorithms and Computation

Problems, and How Computer Scientists Solve Them Manas Thakur

Part I: Definitions and Properties

Computability Theory. CS215, Lecture 6,

CP405 Theory of Computation

Non-Approximability Results (2 nd part) 1/19

NP-completeness. Chapter 34. Sergey Bereg

Complexity Theory. Knowledge Representation and Reasoning. November 2, 2005

CS154, Lecture 17: conp, Oracles again, Space Complexity

Lecture 4: NP and computational intractability

P is the class of problems for which there are algorithms that solve the problem in time O(n k ) for some constant k.

Limitations of Algorithm Power

Algorithms and Complexity Theory. Chapter 8: Introduction to Complexity. Computer Science - Durban - September 2005

Show that the following problems are NP-complete

Limits of Computability

Design and Analysis of Algorithms

The Turing Machine. CSE 211 (Theory of Computation) The Turing Machine continued. Turing Machines

Finish K-Complexity, Start Time Complexity

Computability and Complexity Theory: An Introduction

Lecture 25: Cook s Theorem (1997) Steven Skiena. skiena

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

MTAT Complexity Theory October 13th-14th, Lecture 6

Advanced topic: Space complexity

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

CSci 311, Models of Computation Chapter 9 Turing Machines

Complexity: Some examples

Turing Machines, diagonalization, the halting problem, reducibility

Automata Theory CS S-18 Complexity Theory II: Class NP

Q = Set of states, IE661: Scheduling Theory (Fall 2003) Primer to Complexity Theory Satyaki Ghosh Dastidar

Introduction to Turing Machines

Decidability: Church-Turing Thesis

Review of unsolvability

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

CSC 8301 Design & Analysis of Algorithms: Lower Bounds

Time Complexity (1) CSCI Spring Original Slides were written by Dr. Frederick W Maier. CSCI 2670 Time Complexity (1)

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES

Notes for Lecture Notes 2

Turing Machines and Time Complexity

The Church-Turing Thesis

34.1 Polynomial time. Abstract problems

Principles of Knowledge Representation and Reasoning

1. Introduction Recap

6-1 Computational Complexity

Non-emptiness Testing for TMs

4/12/2011. Chapter 8. NP and Computational Intractability. Directed Hamiltonian Cycle. Traveling Salesman Problem. Directed Hamiltonian Cycle

7.1 The Origin of Computer Science

1 Showing Recognizability

13.1 Nondeterministic Polynomial Time

1 Computational Problems

Tractability. Some problems are intractable: as they grow large, we are unable to solve them in reasonable time What constitutes reasonable time?

Computable Functions

CS 301: Complexity of Algorithms (Term I 2008) Alex Tiskin Harald Räcke. Hamiltonian Cycle. 8.5 Sequencing Problems. Directed Hamiltonian Cycle

CS 583: Algorithms. NP Completeness Ch 34. Intractability

Transcription:

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9001 Computability and Complexity Theory Computability and complexity Computability theory What problems can be solved on a computer? What is a computable function? Decidable vs undecidable problems Complexity theory How much time and memory is needed to solve a problem? Tractable vs intractable problems What is a computable function? Non-trivial question various formalizations, eg General recursive functions Gödel/Herbrand/Kleene 1936 λ-calculus Church 1936 µ-recursive functions Gödel/Kleene 1936 Turing machines Turing 1936 Post systems Post 1943 Markov algorithms Markov 1951 Unlimited register machines Shepherdson-Sturgis 1963 All these approaches have turned out to be equivalent Church s thesis The class of intuitively computable functions is equal to the class of Turing computable functions Turing machine a 1 a 2 a i a n # # infinite tape finite control q Depending on the symbol scanned and the state of the control, in each step the machine changes state, prints a symbol on the cell scanned, replacing what is written there, moves the head left or right one cell

9002 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 Formal definition M = (Q,Σ,Γ,δ,q 0,#,F) Q is the finite set of states Γ is the finite alphabet of allowable tape symbols # Γ is the blank Σ Γ \ {#} is the set of input symbols δ : Q Γ Q Γ {L,R} is the next move function (possibly undefined for some arguments) q 0 Q is the start state F Q is the set of final (accepting) states Recognizing languages Instantaneous description: α l q α r, where q is the current state, α l α r Γ is the string on the tape up to the rightmost nonblank symbol, the head is scanning the leftmost symbol of α r Move: α l q α r α l q α r, by one step of the machine Language accepted L(M) = {w Σ q 0 w α l qα r, for some q F and α l,α r Γ } M may not halt, if w is not accepted Example Turing machine accepting the language L = {0 n 1 n n 1} M = ({q 0,,q 4 },{0,1},{0,1,X,Y,#},δ,q 0,#,{q 4 }) δ 0 1 X Y # q 0 (q 1,X,R) (q 3,Y,R) q 1 (q 1,0,R) (q 2,Y,L) (q 1,Y,R) q 2 (q 2,0,L) (q 0,X,R) (q 2,Y,L) q 3 (q 3,Y,R) (q 4,#,R) q 4 Example computation q 0 0011 Xq 1 011 X0q 1 11 Xq 2 0Y 1 q 2 X0Y 1 Xq 0 0Y 1 XXq 1 Y 1 XXYq 1 1 XXq 2 YY Xq 2 XYY XXq 0 YY XXYq 3 Y XXYYq 3 XXYY #q 4 Recursive languages

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9003 A language L Σ is recursively enumerable if L = L(M), for some Turing machine M yes, if w L w M no, if w L M does not halt, if w L A language L Σ is recursive if L = L(M) for some Turing machine M that halts on all inputs w Σ { yes, if w L w M no, if w L Lemma L is recursive iff both L and L = Σ \ L are recursively enumerable Enumerating languages An enumerator is a Turing machine M with extra output tape T, where symbols, once written, are never changed M writes to T words from Σ, separated by $ Let G(M) = {w Σ w is written to T } Some results Lemma For any finite alphabet Σ, there exists a Turing machine that generates the words w Σ in canonical ordering (ie, w w w < w or w = w and w lex w ) Lemma There exists a Turing machine that generates all pairs of natural numbers (in binary encoding) Proof: Use the ordering (0,0), (1,0), (0,1), (2,0), (1,1), (0,2), Proposition L is recursively enumerable iff L = G(M), for some Turing machine M Computing functions Unary encoding of natural numbers: i N }{{} (binary encoding would also be possible) M computes f : N k N with f (i 1,,i k ) = m: Start: i 1 0 i 2 0 i k End: m i times = i f partially recursive: f recursive: { halts with f (i1,,i i 1,,i k M k ) = m, does not halt, ie, f undefined i 1,,i k M halts with f (i 1,,i k ) = m Turing machines codes May assume M = (Q,{0,1},{0,1,#},δ,q 1,#,{q 2 })

9004 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 Unary encoding δ(q i,x) = (q j,y,r) encoded by δ encoded by 0 0,1 00,# 000,L 0,R 00 0 i 100 }{{} 10 j 100 }{{} 100 }{{} X Y R 111code 1 11code 2 1111code r 111 Encoding of Turing machine M denoted by M Numbering of Turing machines Lemma There exists a Turing machine that generates the natural numbers in binary encoding Lemma There exists a Turing machine Gen that generates the binary encodings of all Turing machines Proposition The language of Turing machine codes is recursive Corollary There exist a bijection between the set of natural numbers, Turing machine codes and Turing machines Gen M M Equality test + counter number n Diagonalization Let w i be the i-th word in {0,1} and M j the j-th Turing machine { 1, if wi L(M j ) Table T with t ij = 0, if w i L(M j ) Diagonal language L d = {w i {0,1} w i L(M i )} Theorem L d is not recursively enumerable Proof: Suppose L d = L(M k ), for some k N Then contradicting L d = L(M k ) j 1 2 3 4 1 0 1 1 0 i 2 1 1 0 1 3 0 0 1 0 w k L d w k L(M k ), Universal language M,w : encoding M of M concatenated with w {0,1} Universal language L u = { M,w M accepts w}

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9005 Theorem L u is recursively enumerable A Turing machine U accepting L u is called universal Turing machine Theorem (Turing 1936) L u is not recursive Decision problems Decision problems are problems with answer either yes or no Associate with a language L Σ the decision problem D L Input: w Σ { yes, if w L Output: no, if w L and vice versa D L is decidable (resp semi-decidable) if L is recursive (resp recursively enumerable) D L is undecidable if L is not recursive Reductions A many-one reduction of L 1 Σ 1 to L 2 Σ 2 is a computable function f : Σ 1 Σ 2 with w L 1 f (w) L 2 Proposition If L 1 is many-one reducible to L 2, then 1 L 1 is decidable if L 2 is decidable 2 L 2 is undecidable if L 1 is undecidable Post s correspondence problem Given pairs of words (v 1,w 1 ),(v 2,w 2 ),,(v k,w k ) over an alphabet Σ, does there exist a sequence of integers i 1,,i m,m 1, such that v i1,,v im = w i1,,w im Example i v i w i 1 1 111 2 10111 10 3 10 0 v 2 v 1 v 1 v 3 = w 2 w 1 w 1 w 3 = 101111110 Theorem (Post 1946) Post s correspondence problem is undecidable Hilbert s Tenth Problem Hilbert, International Congress of Mathematicians, Paris, 1900 Given a diophantine equation with any number of unknown quantities and with rational integral numerical coefficients: to devise a process according to which it can be determined by a finite number of operations whether the equation is solvable in rational integers Theorem (Matiyasevich 1970) Hilbert s tenth problem is undecidable

9006 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 Non-deterministic Turing machines Next move relation: δ (Q Γ) (Q Γ {L,R}) L(M) = set of words w Σ for which there exists a sequence of moves accepting w Proposition If L is accepted by a non-deterministic Turing machine M 1, then L is accepted by some deterministic machine M 2 Time complexity M a (deterministic) Turing machine that halts on all inputs Time complexity function T M : N N T M (n) = max{m w Σ, w = n such that the computation of M on w takes m moves} (assume numbers are coded in binary format) A Turing machine is polynomial if there exists a polynomial p(n) with T M (n) p(n), for all n N The complexity class P is the class of languages decided by a polynomial Turing machine Time complexity of non-deterministic Turing machines M non-deterministic Turing machine The running time of M on w Σ is the length of a shortest sequence of moves accepting w if w L(M) 1, if w L(M) T M (n) = max{m w Σ, w = n such that the running time of M on w is m} The complexity class NP is the class of languages accepted by a polynomial non-deterministic Turing machine Deciding languages in NP Theorem If L NP, then there exists a deterministic Turing machine M and a polynomial p(n) such that M decides L and T M (n) 2 p(n), for all n N Proof: Suppose L is accepted by a non-deterministic machine M nd polynomial q(n) To decide whether w L, the machine M will whose running time is bounded by the 1 determine the length n of w and compute q(n) 2 simulate all executions of M nd of length at most q(n) If the maximum number of choices of M nd in one step is r, there are at most r q(n) such executions

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9007 3 if one of the simulated executions accepts w, then M accepts w, otherwise M rejects w The overall complexity is bounded by r q(n) q (n) = O(2 p(n) ), for some polynomial p(n) An alternative characterization of NP Proposition L NP if there exists L P and a polynomial p(n) such that for all w Σ : w L v (Σ ) : v p( w ) and (w,v) L Informally, a problem is in NP if it can be solved non-deterministically in the following way: 1 guess a solution/certificate v of polynomial length, 2 check in polynomial time whether v has the desired property Propositional satisfiability Satisfiability problem SAT Instance: A formula F in propositional logic with variables x 1,,x n Question: Is F satisfiable, ie, does there exist an assignment I : {x 1,,x n } {0,1} making the formula true? Trying all possible assignments would require exponential time Guessing an assignment I and checking whether it satisfies F can be done in (non-deterministic) polynomial time Thus: Proposition SAT is in NP Polynomial reductions A polynomial reduction of L 1 Σ 1 to L 2 Σ 2 is a polynomially computable function f : Σ 1 Σ 2 with w L 1 f (w) L 2 Proposition If L 1 is polynomially reducible to L 2, then 1 L 1 P if L 2 P and L 1 NP if L 2 NP 2 L 2 P if L 1 P and L 2 NP if L 1 NP L 1 and L 2 are polynomially equivalent if they are polynomially reducible to each other NP-complete problems A language L Σ is NP-complete if 1 L NP 2 Any L NP is polynomially reducible to L Proposition If L is NP-complete and L P, then P = NP Corollary If L is NP-complete and P NP, then there exists no polynomial algorithm for L Structure of the class NP

9008 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 P NP NP complete Fundamental open problem: P NP? Proving NP-completeness Theorem (Cook 1971) SAT is NP-complete Proposition L is NP-complete if 1 L NP 2 there exists an NP-complete problem L that is polynomially reducible to L INDEPENDENT SET Instance: Graph G = (V,E) and k N,k V Question: Is there a subset V V such that V k and no two vertices in V are joined by an edge in E? Reducing 3SAT to INDEPENDENT SET Let F be a conjunction of n clauses of length 3, ie, a disjunction of 3 propositional variables or their negation Construct a graph G with 3n vertices that correspond to the variables in F For any clause in F, connect by three edges the corresponding vertices in G Connect all pairs of vertices corresponding to a variable x and its negation x F is satisfiable if and only if G contains an independent set of size n Solving numerical constraints Satisfiability over Q over Z over N Linear equations polynomial polynomial NP-complete Linear inequalities polynomial NP-complete NP-complete Satisfiability over R over Z Linear constraints polynomial NP-complete Nonlinear constraints decidable undecidable NP-hard problems Decision problem: solution is either yes or no Example: Traveling salesman decision problem: Given a network of cities, distances, and a number B, does there exist a tour with length B?

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9009 Search problem: find an object with required properties Example: Traveling salesman optimization problem: Given a network of cities and distances, find a shortest tour Decision problem NP-complete search problem NP-hard NP-hard problems: at least as hard as NP-complete problems Graph theoretical problems Shortest path Traveling salesman Minimum spanning tree Steiner tree polynomial NP-hard polynomial NP-hard NP-hard problems in bioinformatics Multiple sequence alignment Wang/Jiang 94 Protein folding Fraenkel 93 Protein threading Lathrop 94 Protein design Pierce/Winfree 02 Approximation algorithms Unless P = NP, NP-hard optimization problems cannot be solved in polynomial time What about polynomial approximation algorithms? NP optimization problems An NP-optimization problem has the form Π = (I,Sol,m,opt), where I is the set of instances Sol(I), for I I, is the set of feasible solutions m(i,s) 0 denotes the value of S opt {min, max} is the type of optimization problem NPO is the class of NP-optimization problems Assumptions Any I I can be recognized in time polynomial with I For every S Sol(I), S is polynomial in I For any S with S polynomial in I, one can decide in polynomial time whether S Sol(I) m is polynomially computable

9010 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 Approximation algorithms An approximation algorithm A for Π computes for any instance I a feasible solution A(I) Sol(I) If A is polynomial in I, then A is a polynomial approximation algorithm for Π Approximation ratio ρ A (I) = m(i,a(i)) { [1, ), if opt = min m(i,opt(i)) [0,1], if opt = max The class APX Π belongs to the class APX if there is a polynomial approximation algorithm A and ρ > 0 such that for any I I, A is then called a ρ-approximation algorithm m(i,a(i)) ρ m(i,opt(i)), if opt = min m(i,a(i)) ρ m(i,opt(i)), if opt = max Polynomial time approximation schemes Π PTAS if for any ε > 0 there exists a ρ-approximation algorithm A ρ, where ρ = 1 +ε (for opt = min) resp ρ = 1 ε (for opt = max) Π FPTAS if Π belongs to PTAS and if there is polynomial q(x,y) such that the running time of A r (I) is bounded by q( I, 1/ε) PTAS resp FPTAS stands for (fully) polynomial time approximation scheme Assuming P NP, one can show FPTAS PTAS APX NPO 0-1 Knapsack problem KNAPSACK Instance: A finite set S of items, for each i S a weight w i N and a value v i N, a total capacity c N, and a value v N (assume w i c) Question: Is there a subset T S with Theorem KNAPSACK is NP-complete Integer programming formulation i T w i c and v i v i T max{v 1 x 1 + + v n x n w 1 x 1 + + w n x n c,x i {0,1}} Dynamic programming algorithm v(i,d): maximum value attainable by packing some of the i first items into a knapsack of capacity d 0, if i = 0 v(i,d) = v(i 1,d), if i > 0,w i > d max{v(i 1,d),v(i 1,d w i ) + v i }, if i > 0,w i d

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9011 O(nc) algorithm for computing v(n,c) Does it show P = NP? Binary encoding of c requires k = O(log 2 c) bits, so the running time O(nc) = O(n2 k ) is exponential in the input length Using unary encoding, the algorithm runs in polynomial time pseudo-polynomial algorithm Example Instance Dynamic programming table i 1 2 3 w i 1 2 3 v i 6 10 12, capacity c = 5 i \ d 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 6 6 6 6 6 2 0 6 10 16 16 16 3 0 6 10 16 18 22 Optimal solution: x = (0,1,1) of value v = 22 Fractional knapsack problem Can take fractions of items: max{v 1 x 1 + + v n x n w 1 x 1 + + w n x n c,0 x i 1} Greedy algorithm Sort items by value per weight, ie v 1 w 1 v 2 w 2 v n w n Pack items in this ordering until no space is left Solution (1,,1,r,0,0) of value v 1 + + v k + rv k+1 Running time: O(n logn) Example: x = (1,1,2/3), v = 24 Variant of dynamic programming algorithm w(i,v) = minimum weight attainable by selecting some among the i first items, so that the value is exactly v 0, if v = 0, if v > 0,i = 0 w(i,v) = w(i 1,v), if v i > v min{w(i 1,v),w i + w(i 1,v v i )}, otherwise Optimal value: v = max{v w(n,v) c} Running time: O(nv ) = O(n 2 v max )

9012 Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 Scale and round values: Define ˆv i = Intuition ε = 1 ρ precision parameter b = ε v max /n scaling factor ˆv small can get fast solution FPTAS for KNAPSACK vi b, so b ˆv i v i < b ˆv i + b b ˆv close to v can get near-optimal solution Running time: O(n 3 /ε) Variant of dynamic programming runs in O(n 2 ˆv max ) vmax n ˆv max = = b ε Quality of solution Lemma If T A is the solution found by the approximation algorithm and T an optimal solution to the original problem, then v i b ˆv i b ˆv i (v i b) i T A i T A i T i T = v (εv max /n) n (1 ε) v i T v i b n Theorem KNAPSACK is in FPTAS Traveling salesman problem Hamiltonian circuit Instance: G = (V, E) undirected graph Question: Does G contain a simple circuit that contains all vertices in V? Theorem Hamiltonian circuit is NP-complete Traveling salesman problem (TSP): Given a complete graph G = (V,E) with integer costs c(e) 0, find a Hamiltonian circuit of minimum cost Theorem Unless P = NP, there is no ρ-approximation algorithm for TSP for any ρ 1 Proof Suppose A is ρ-approximation algorithm for TSP Use A to solve an instance G = (V,E) of Hamiltonian circuit Create an instance I of TSP with V vertices and weights { 1, if e E c(e) = ρ V + 1, if e E C Hamiltonian circuit in G C has cost exactly V in I m(i,a(i)) ρ V

Discrete Math for Bioinformatics WS 09/10:, by A Bockmayr/K Reinert, January 27, 2010, 18:39 9013 C not Hamiltonian circuit in G C has cost at least ρ V + 1 in I m(i,a(i)) ρ V + 1 Further complexity classes conp: PSPACE: EXPTIME: Problems whose complement is in NP Problems solvable in polynomial space Problems solvable in exponential time Literature J E Hopcroft and J D Ullman: Introduction to automata theory, languages and computation Addison- Wesley, 1979 M R Garey and D S Johnson: Computers and intractability A guide to the theory of NP-completeness Freeman, 1979 C H Papadimitriou: Computational complexity Addison-Wesley, 1994