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
Sorting
GreatestCommonDivisor
Validating Primes
NP-Complete
EXPTIME Algorithms
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.