P Versus NP Frank Vega
Total Page:16
File Type:pdf, Size:1020Kb
P versus NP Frank Vega To cite this version: Frank Vega. P versus NP. 2018. hal-01925735 HAL Id: hal-01925735 https://hal.archives-ouvertes.fr/hal-01925735 Preprint submitted on 17 Nov 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. P versus NP Frank Vega Joysonic, Belgrade, Serbia [email protected] Abstract. P versus NP is considered as one of the most important open problems in computer science. This consists in knowing the answer of the following question: Is P equal to NP? A precise statement of the P versus NP problem was introduced independently in 1971 by Stephen Cook and Leonid Levin. Since that date, all efforts to find a proof for this problem have failed. Another major complexity class is FP. We show a problem that is not in FP. Under the assumption of P = NP, we prove the membership of this problem in FP is also hold. In this way, we demonstrate the complexity class P is not equal to NP by the reduction ad absurdum rule. Keywords: Complexity Classes · Minimum · Polynomial Time · Boolean Circuit · Function Problem. 1 Introduction The P versus NP problem is a major unsolved problem in computer science [3]. This is considered by many to be the most important open problem in the field [3]. It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute to carry a US$1,000,000 prize for the first correct solution [3]. It was essentially mentioned in 1955 from a letter written by John Nash to the United States National Security Agency [1]. However, the precise statement of the P = NP problem was introduced in 1971 by Stephen Cook in a seminal paper [3]. In 1936, Turing developed his theoretical computational model [9]. The de- terministic and nondeterministic Turing machines have become in two of the most important definitions related to this theoretical model for computation [9]. A deterministic Turing machine has only one next action for each step defined in its program or transition function [9]. A nondeterministic Turing machine could contain more than one action defined for each step of its program, where this one is no longer a function, but a relation [9]. Another relevant advance in the last century has been the definition of a complexity class. A language over an alphabet is any set of strings made up of symbols from that alphabet [4]. A complexity class is a set of problems, which are represented as a language, grouped by measures such as the running time, memory, etc [4]. In the computational complexity theory, the class P contains those languages that can be decided in polynomial time by a deterministic Turing machine [7]. The class NP consists in those languages that can be decided in polynomial time by a nondeterministic Turing machine [7]. The biggest open question in theoretical computer science concerns the relationship between these classes: Is P equal to NP ? In 2012, a poll of 151 researchers showed that 126 (83%) believed the answer to be no, 12 (9%) believed the answer is yes, 5 (3%) believed the question may be independent of the currently accepted axioms and therefore impossible to prove or disprove, 8 (5%) said either do not know or do not care or don't want the answer to be yes nor the problem to be resolved [6]. It is fully expected that P 6= NP [1]. Indeed, if P = NP then there are stunning practical consequences [1]. For that reason, P = NP is considered as a very unlikely event [1]. Certainly, P versus NP is one of the greatest still open problems in science and a correct solution for this incognita will have a great impact not only for computer science, but for many other fields as well [1]. In this work, we prove the complexity class P is not equal to NP . 2 Basic Definitions Let Σ be a finite alphabet with at least two elements, and let Σ∗ be the set of finite strings over Σ [2]. A Turing machine M has an associated input alphabet Σ [2]. For each string w in Σ∗ there is a computation associated with M on input w [2]. We say that M accepts w if this computation terminates in the accepting state, that is M(w) = \yes" [2]. Note that M fails to accept w either if this computation ends in the rejecting state, that is M(w) = \no", or if the computation fails to terminate [2]. The language accepted by a Turing machine M, denoted L(M), has an as- sociated alphabet Σ and is defined by L(M) = fw 2 Σ∗ : M(w) = \yes"g: We denote by tM (w) the number of steps in the computation of M on input w [2]. For n 2 N we denote by TM (n) the worst case running time of M; that is n TM (n) = maxftM (w): w 2 Σ g where Σn is the set of all strings over Σ of length n [2]. The notations we use to describe the asymptotic running time of an algorithm are defined in terms of functions whose domains are the set of natural numbers [4]. Such notations are convenient for describing the worst and better case running time functions, which is usually defined only on integer input sizes [4]. For a given function g(n), we denote by Ω(g(n)) the set of functions Ω(g(n)) = ff(n): There exist positive constants c and n0 such that 0 ≤ c × g(n) ≤ f(n) for all n ≥ n0g: Ω-notation provides an asymptotic lower bound [4]. We say that M runs in k polynomial time if there is a constant k such that for all n, TM (n) ≤ n + k [2]. In other words, this means the language L(M) can be accepted by the Turing machine M in polynomial time. Therefore, P is the complexity class of languages that can be accepted in polynomial time by deterministic Turing machines [4]. A verifier for a language L is a deterministic Turing machine M, where L = fw : M(w; c) = \yes" for some string cg: We measure the time of a verifier only in terms of the length of w, so a polynomial time verifier runs in polynomial time in the length of w [2]. A verifier uses additional information, represented by the symbol c, to verify that a string w is a member of L. This information is called certificate. NP is also the complexity class of languages defined by polynomial time verifiers [8]. If NP is the class of problems that have succinct certificates, then the complexity class coNP must contain those problems that have succinct disqualifications [8]. That is, a \no" instance of a problem in coNP possesses a short proof of its being a \no" instance [8]. The function problem associated with a language L, denoted FL, is the following computational problem: Given x, find a string y such that M(x; y) = \yes" if such string exists, otherwise return \no" where M is a verifier [8]. The class of all function problems associated in this way with languages in NP such that the verifier is a polynomial time verifier is called FNP [8]. FP is the subclass resulting if we only consider function problems in FNP that can be solved in polynomial time [8]. 3 Results Definition 1. MINIMUM INSTANCE: A natural number n = 2m and a function f : f0; 1; 2; : : : ; n − + 1g ! Z0 where m is a natural number. QUESTION: Find a positive integer 0 ≤ i ≤ n − 1 such that there is no a positive integer 0 ≤ j ≤ n − 1 where f(j) < f(i) and i 6= j. Lemma 1. MINIMUM 2 Ω(n − 1). Proof. How many comparisons are necessary to determine the minimum of a set of n = 2m elements where m is a natural number? We can easily obtain an upper bound of n − 1 comparisons: Examine each element of the set in turn and keep track of the smallest element seen so far [4]. In this problem, we assume that the set resides in the function f. Our algorithm will be as follows: 1. min = f(0) 2. i = 0 3. for j 1 to n − 1 4. do if min > f(j) 5. then min = f(j) 6. i = j 7. return i. Is this the best we can do? Yes, since we can obtain a lower bound of n − 1 comparisons for the problem of determining the minimum [4]. Think of any algorithm that determines the minimum as a tournament among the elements [4]. Each comparison is a match in the tournament in which the smaller of the two elements wins [4]. The key observation is that every element except the winner must lose at least one match [4]. Hence, n − 1 comparisons are necessary to determine the minimum, and the algorithm above is optimal with respect to the number of comparisons performed [4]. Finding the value of i, of course, be accomplished with n − 1 comparisons as well, since it is equivalent to find the minimum. Definition 2. SUCCINCT{MINIMUM INSTANCE: A natural number n = 2m and a Boolean circuit C with m input gates and k arbitrary output gates which succinctly represents a function + f : f0; 1; 2; : : : ; n − 1g ! Z0 such that on the input 0 ≤ i ≤ n − 1 we obtain the output C(i) is equal to the positive integer f(i) where m and k are natural numbers.