P vs NP vs Quantum

Computational Complexity, Quantum Computing, and effects on Cryptography

Introduction

Peter Fitzgibbons

peter.fitzgibbons@gmail.com
@pjfitzgibbons
gitub/pjfitzgibbons

Complexity

Complexity Theory

  • Classifying  computational problems according to their inherent difficulty
  • Problems are modeled using "algorithms" - an application of mathematical steps
  • Euclidian Algorithm - finding GreatestCommonDivisor - Gabriel Lamé - 1844
  • Next devoted efforts are by Turing, et. al. - C. 1930's
  • History

    Computational Complexity Theory

    entscheidungsproblem

    David Hilbert - 1928 - Germany

    Prove the existence of :
    An algorithm
     With input any First-Order-Logic statement
    Results of "yes" or "no" to the question :
    "is this input logic statement universally valid "

    Decision Problems


    A question in some Formal System with a yes-or-no answer.
    Formal System includes mathematical proof, grammars, and rulesets.

    Function Problems
    "given x and y, compute x divided by y".  
    These problems require mathematical procedures (long division). 
    There may be a process for transferring Function Problems into Decision Problems

    Lambda Calculus

    Alonzo Church - 1938

    A mathematical grammar to describe and understand Procedural Calculations.

    lambda-calculus

    Anonymous Functions

    Function :
    sqsum(x, y) = x  *  x + y  * y

    Anonymous Function :
    (x,y) -> x * x + y * y

    Lambda Calculus

    Currying

    More properly named "schönfinkeling"
    concept introduced by Moses Schönfinkel earlier
    documented in 1956 by it's eponymy - Haskell Brooks Curry

    Programing Languages:
    • Haskell
    • Brooks
    • Curry

    lambda calculus


    "lambda"... "currying"... anonymous functions

    Programming?

    Turing machine

    Alan Turing - 1938

    An imaginary calculating device, manipulating symbols on an infinitely-long tape, using an internal table of rules.

    Universal Turing Machine

    Meta-algorithm
    A Turing Machine which is sufficiently complex to read the "simulation" of any other Turing Machine and then execute it's functions with various input.

    Simulated Testing = xUnit?

    Complexity Classes

    PSPACE, NP, P, NP-Complete, NP-Hard


    Complexity

    Formal Notation - Big-O

    n  = number of elements on input

    Polynomial - P
    O(n ^ k)
    any like : n^100 + 3n^50 + 33n^3 + 2n

    Logarithmic / Poly-logarithmic - L
    O(ln(n)) / O((ln(n) ^ k)

    Exponential - EXPTIME
    O( 2 ^ n)

    PSPACE

    The collection of problems that can be solved in Polynomial Space (memory) to N

    NP

    Contains P and NP-Complete

    Problems verifiable in polynomial time
    The complexity of the Functional Algorithm may be polynomial-time or worse - EXPTIME

    P

    Polynomial-Time Algorithms
    1. Sorting
    2. GreatestCommonDivisor
    3. Validating Primes

    NP-Complete

    EXPTIME Algorithms
    1. Factoring
      • Factors of 15 are 3, 5
      • EXPTIME for numbers > 100 digits

    NP-Complete

    EXPTIME Algorithms
    Travelling Salesman Problem

    • Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
    • Thus, it is likely that the worst-case running time for any algorithm for the TSP increases superpolynomially (or perhaps exponentially) with the number of cities.

    NP-Complete

    Super-polynomial time Algorithms (or worse... EXPTIME)
    GraphColoring

    • MapColoring
    • Scheduling - Jobs with conflicting requirements assigned to a pool of workers
    • Sudoku

    Some GraphColoring problems are also NP-hard : computing chromatic number (k), 4-color a 3-colorable graph.

    Np-Hard

    Intuitively, problem A is reducible to problem B if an algorithm for solving problem B efficiently (if it existed) could also be used as a subroutine to solve problem A efficiently. When this is true, solving A cannot be harder than solving B.
    - Wikipedia : Reduction_(Complexity)

    • Algorithm B is an "oracle" that can be used to produce a polynomial-time algorithm for A, calling alg-B arbitrary times in its solution. 
    • Thus Problem B is at least as hard as any problem L in NP, ie. any L can be reduced to B in polynomial-time.
    • Implication : P = NP

    P vs NP

    So far, the mathematics/computer-science community only know that P is a subset of NP.
    Computer Science and Mathematics want a proof or contrary proof of P = NP.

    formal language to practical application

    Practical Application - Factoring - Functional Problem
    The process of factoring requires a mathematical procedure.

    Mapping into Complexity Theory
    Translating the Functional Problem into the Decision Problem equivalent, thusly allowing application of the theoretical Universal Turing Machine for Complexity Measurement

    Implications of Counter-Proof

    • Information! Knowing that P ≠ NP by proof will educate many areas of current research in computing. This has been taken as the defacto result of the P vs NP problem, and many avenues of research in this field have taken guidance from an accepted P ≠ NP result.
    • Categorization of problems into (P, NP-Complete) could guide continued research in cryptography and related fields.


    Implications of Proof

    • All algorithms can be reduced by a polynomial-time Reduction Algorithm into P-complexity… we only need to deduce the way!
    • The problems in NP-Complete, and eventually in NP-Hard, can be solved, opening the door to solutions in every area of science, medicine, computing, mathematics. - "Save the NP-Complete, Save the World"
    • Cryptography collapse - current modern cryptography is dependent upon the EXPTIME nature of the NP-Complete problem space (ie Factoring)


    Current Day - No Proof

    Quantum Computing

    A computing device making use of Quantum-Mechanical phenomena, including superposition and entanglement.

    Quantum Superposition

    • Quantum particles, ie. electrons, theoretically exist in all possible states at any point in time.  
      • spin-up and spin-down.
    • When measured, the particle will exhibit one of it's states, with a certain probability
    • The sum of of all possible states should be 1, so:
    c0   |0⟩ + c1   |1⟩ = 1
      • c0 and c1 are actually complex numbers
    • The probability of all states also should be 1, the sum of absolute squares of the states:
      • |c0|^2    +  |c1| ^2 = 1

    Quantum Superposision

    States
    • c0 and c1 are actually complex numbers
  • The probability of all states also should be 1, the sum of absolute squares of the states:
    • |c0|^2     +  |c1| ^2  = 1

    Quantum Entanglement

    Various interactions result in entanglement
    • subatomic particle decay
    • photon spontaneous-parametric-downconversion

    The result
    Although the particle pair maintains probabilistic superposition,
    Once p0 has been measured,  the probability = 1 of the measured state p1 being equal to p0. 

    Qubits

    • Recall that measuring quantum-superposition leads to the probability state :   |c0|^2    +  |c1| ^2 = 1
      • For any Qubit, during processing, it holds 2 states (superposition).
      • For any N qubits, they hold 2^n states (coefficients).
        • For n=3, linear computer would hold 2^3 = 8bits
        • for n=100, linear computer would hold 2^100   = 1.2676506e+30 bits !!

    Qubit Registers

    3-qubit

    3-qubit register holds all 8 octet values simultaneously in superposition.
    Mathematically, we calculate the probability of each octet value:
    A (000) = 0
    B (001) = 0
    C (010) = 0
    and so on

    Thus we get this probability vector:
    ( 0, 0, 0, 0, 0, 0, 0, 0 )

    QUBIT REGISTERS

    3-QUBIT

    So the Quantum Register vector for the value (001) :

    ( 0, 1, 0, 0, 0, 0, 0, 0 )

    Recall that each of these vector values is a probability.

    Quantum Error Correction

    • Redundancy
    • Highly-entangled qbit groups

    Quantum Algorithms

    Factoring - Shor's Algorithm

    Class BQP

    bounded error quantum polynomial time

    P vs NP

    By Peter Fitzgibbons