Introduction to computer science



Similar documents
Computational complexity theory

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

NP-complete? NP-hard? Some Foundations of Complexity. Prof. Sven Hartmann Clausthal University of Technology Department of Informatics

2 Elements of classical computer science

Page 1. CSCE 310J Data Structures & Algorithms. CSCE 310J Data Structures & Algorithms. P, NP, and NP-Complete. Polynomial-Time Algorithms

Notes on Complexity Theory Last updated: August, Lecture 1

A Working Knowledge of Computational Complexity for an Optimizer

NP-Completeness. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

P versus NP, and More

Why? A central concept in Computer Science. Algorithms are ubiquitous.

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

OHJ-2306 Introduction to Theoretical Computer Science, Fall

Universality in the theory of algorithms and computer science

CS 3719 (Theory of Computation and Algorithms) Lecture 4

Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 313]

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

Introduction to Algorithms. Part 3: P, NP Hard Problems

Complexity Classes P and NP

THE TURING DEGREES AND THEIR LACK OF LINEAR ORDER

Lecture 7: NP-Complete Problems

What Has Quantum Mechanics to Do With Factoring? Things I wish they had told me about Peter Shor s algorithm

NP-Completeness and Cook s Theorem

Quantum Computing. Robert Sizemore

Chapter 1. Computation theory

The Classes P and NP

Notes on Complexity Theory Last updated: August, Lecture 1

Lecture 9 - Message Authentication Codes

NP-completeness and the real world. NP completeness. NP-completeness and the real world (2) NP-completeness and the real world

2.1 Complexity Classes

CAD Algorithms. P and NP

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

Factoring & Primality

CSC 373: Algorithm Design and Analysis Lecture 16

Some Minesweeper Configurations

Keywords Quantum logic gates, Quantum computing, Logic gate, Quantum computer

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Theoretical Computer Science (Bridging Course) Complexity

Applied Algorithm Design Lecture 5

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

One last point: we started off this book by introducing another famously hard search problem:

0.1 Phase Estimation Technique

Lecture 13 - Basic Number Theory.

Graph Theory Problems and Solutions

6.080/6.089 GITCS Feb 12, Lecture 3

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, Notes on Algebra

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Revised Version of Chapter 23. We learned long ago how to solve linear congruences. ax c (mod m)

Lecture 2: Universality

Chapter. NP-Completeness. Contents

Guessing Game: NP-Complete?

On the Relationship between Classes P and NP

Quantum Computability and Complexity and the Limits of Quantum Computation

Lecture 19: Introduction to NP-Completeness Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

! X is a set of strings. ! Instance: string s. ! Algorithm A solves problem X: A(s) = yes iff s! X.

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT?

Theorem (informal statement): There are no extendible methods in David Chalmers s sense unless P = NP.

Introduction to Logic in Computer Science: Autumn 2006

MATHEMATICS: CONCEPTS, AND FOUNDATIONS Vol. III - Logic and Computer Science - Phokion G. Kolaitis

Discrete Mathematics & Mathematical Reasoning Chapter 10: Graphs

Quantum and Non-deterministic computers facing NP-completeness

Notes on NP Completeness

FOUNDATIONS OF ALGEBRAIC GEOMETRY CLASS 22

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES

CAs and Turing Machines. The Basis for Universal Computation

Discuss the size of the instance for the minimum spanning tree problem.

Algebraic Computation Models. Algebraic Computation Models

Chapter 7: Products and quotients

Chapter 1. NP Completeness I Introduction. By Sariel Har-Peled, December 30, Version: 1.05

Computability Theory

SUBGROUPS OF CYCLIC GROUPS. 1. Introduction In a group G, we denote the (cyclic) group of powers of some g G by

The finite field with 2 elements The simplest finite field is

P vs NP problem in the field anthropology

arxiv:quant-ph/ v2 25 Jan 1996

Approximation Algorithms

Notes from Week 1: Algorithms for sequential prediction

Reading 13 : Finite State Automata and Regular Expressions

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.

Cloud Computing is NP-Complete

Welcome to... Problem Analysis and Complexity Theory , 3 VU

Tetris is Hard: An Introduction to P vs NP

[Refer Slide Time: 05:10]

The Basics of Graphical Models

JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS. Received December May 12, 2003; revised February 5, 2004

Tutorial 8. NP-Complete Problems

Lecture 1: Course overview, circuits, and formulas

Factoring by Quantum Computers

CHAPTER 5. Number Theory. 1. Integers and Division. Discussion

Outline Introduction Circuits PRGs Uniform Derandomization Refs. Derandomization. A Basic Introduction. Antonis Antonopoulos.

Introduction to NP-Completeness Written and copyright c by Jie Wang 1

Discrete Mathematics Problems

Faster deterministic integer factorisation

Techniques algébriques en calcul quantique

How To Compare A Markov Algorithm To A Turing Machine

Euler Paths and Euler Circuits

8 Primes and Modular Arithmetic

Transcription:

Introduction to computer science Michael A. Nielsen University of Queensland Goals: 1. Introduce the notion of the computational complexity of a problem, and define the major computational complexity classes. 2. Explain how to compute reversibly.

Q: Is there a general algorithm to determine whether a mathematical conjecture is true or false? Church-Turing: NO! Computer science Turing Machine Ad hoc empirical justification! Church-Turing thesis: Any algorithmic process can be simulated on a Turing machine an idealized and rigorously defined mathematical model of a computing device.

Turing machines Many different models of computation are equivalent to the Turing machine (TM). We will use a model other than the TM for reasons of both pedagogy and utility. Program: 01001100 010 INPUT x = I like quantum information science PROGRAM FOR j = 1:LENGTH(x) OUTPUT x NEXT Input: Workspace: Output: 11101100101... 000. 11001...

How to number programs and their inputs The program and input for a universal computer can be uniquely encoded as a pair of positive integers. INPUT x = I like quantum information science binary PROGRAM FOR j = 1:LENGTH(x) OUTPUT x NEXT binary 0001100001 123456789 110011001 987654321

The halting problem Does program number x halt on input of x? hx ( ) 0 if program x halts on input x 1 otherwise Is there an algorithm to solve the halting problem, that is, to compute h(x)? PROGRAM: TURING(x) Suppose such an algorithm exists. Let T be the program number for TURING. Contradiction! IF h(x) = 1 THEN HALT ELSE loop forever h(t) = 0 TURING(T) halts h(t) = 1

Exercise: Show that there is no algorithm to determine whether program number x halts with input y. Exercise: Show that there is no algorithm to determine whether program number x halts with input 0.

What is the relationship of the halting problem to Hilbert s problem? Conjecture: Program number x halts on input of x. No algorithm exists to prove or refute this conjecture, in general. Isn t this a rather artificial conjecture? Conjecture: Topological space X is topologically equivalent to topological space Y. Many other natural mathematical conjectures cannot be algorithmically decided.

Computational complexity theory Goal: A general theory of the resources needed to solve computational problems. What types of resources? time space energy What types of computational problems? composing a poem sorting a database optimization decision problem

Decision problems A decision problem is a computational problem with a yes or no answer. Example: Is the number n prime? Why focus on decision problems? Decision problems are simple: This makes it easy to develop a rigorous mathematical theory. Decision problems are surprisingly general: Many other problems can be recast in terms of decision problems that are essentially equivalent.

Recasting other problems as decision problems Multiplication problem: What is the product of m and n? Multiplication decision problem: Is the kth bit of the product of m and n a one? Time required to solve one of these problems is the same (to within a small overhead) as the time required to solve the other. Factoring problem: What is the smallest non-trivial factor of n? Factoring decision problem: Does n have a non-trivial factor smaller than k? Time required to solve one of these problems is the same (to within a small overhead) as the time required to solve the other.

insoluble soluble Efficiency insoluble soluble hard easy Nomenclature: easy = tractable = efficiently computable hard = intractable = not efficiently computable Definition: A problem is easy if there is a Turing machine to solve the problem that runs in time polynomial in the size of the problem input. Otherwise the problem is hard. This definition is usually applied to both decision problems and more general problems.

Why polynomial-time = easy It s a rule of thumb: in practice, problems with polynomial-time solutions are usually found to be easily soluble, while problems without are usually found to be rather difficult. In practice, a super-polynomial algorithm whose running log( n ) time as a function of the input size, n, is n is likely 10000 preferable to a poly-time algorithm taking time n. The way to think about the polynomial versus non-polynomial distinction is as a first-cut analysis. Finer distinctions can wait until later.

Why polynomial-time = easy Christos H. Papadimitriou, Computational Complexity : It should not come as a surprise that our choice of polynomial algorithms as the mathematical concept that is supposed to capture the informal notion of practically efficient computation is open to criticism from all sides. [ ] Ultimately, our argument for our choice must be this: Adopting polynomial worst-case performance as our criterion of efficiency results in an elegant and useful theory that says something meaningful about practical computation, and would be impossible without this simplification.

Our first computational complexity class: P Definition: The set of all decision problems soluble in polynomial time on a Turing machine is denoted P. decision problems P easy problems Terminology: Multiplication is in P means The multiplication decision problem is in P. Factoring is thought not to be in P means The factoring decision problem is thought not to be in P. Technical caveat: Allowing the Turing machine to do random coin flips appears to help. The set of all decision problems soluble on a (randomized) Turing machine is denoted BPP.

The strong Church-Turing thesis Doesn t the definition of P depend upon the computational model used in the statement of the definition, namely, the Turing machine? Church-Turing thesis: Any algorithmic process can be simulated on a Turing machine. Strong Church-Turing thesis: Any physically reasonable algorithmic process can be simulated on a Turing machine, with at most a polynomial slowdown in the number of steps required to do the simulation. Ad hoc empirical justification! The strong Church-Turing thesis implies that the problems in P are precisely those for which a polynomial-time solution is the best possible, in any physically reasonable model of computation.

The strong Church-Turing thesis Strong Church-Turing thesis: Any physically reasonable algorithmic process can be simulated on a Turing machine, with at most a polynomial slowdown in the number of steps required to do the simulation. Deutsch: Maybe computers based on quantum mechanics might violate the strong Church-Turing thesis? Nonetheless, a remarkably wide range of computational models satisfy the strong Church-Turing thesis, and it can serve as the basis for a useful theory of computational complexity.

Many important problems aren t known to be in P Example: Factoring. Example: The traveling salesman problem (TSP). 22 km 23 km 15 km 12 km 19 km 14 km 16 km Goal: Find the shortest tour through all the cities. Traveling salesman decision problem: Given a network and a number, k, is there a tour through all the cities of length less than k? It is widely believed that neither of these problems is in P.

Witnesses Determining whether 7747 has a factor less than 70 is thought to be hard. Verifying that 61 is a factor of 7747 (= 127 x 61) less than 70 is easy: just check that 61 < 70 and use the efficient long-division algorithm you learnt in school. The factoring decision problem has witnesses to yes instances of the problem informally, solutions to the factoring problem, which can be checked in polynomial time. It does not follow that there are easily-checkable witnesses for no instances, like Does 7747 have a factor less than 60? TSP seems to be hard, but also has easily-checked witnesses for yes instances.

NP Definition: The complexity class NP consists of all decision problems for which yes instances of the problem have witnesses checkable in polynomial time on a Turing machine. Examples: The factoring and TSP decision problems. Example: The Hamiltonian cycle problem: is there a tour that goes through each vertex in the graph exactly once? Many important optimization problems are in NP it is often hard to find a solution, but easy to verify a solution once it is found.

The relationship of P to NP decision problems NP P P NP: Yes instances for problems in P can be verified in polynomial time, even without a witness. Is P NP? (US) $1,000,000 dollars for a solution: http://www.claymath.org

Why proving P NP is harder than it looks Intuition: There is no better way of finding a solution than searching through most possible witness. Example: The Hamiltonian cycle problem: is there a tour that goes through each vertex in the graph exactly once? Intuition: To determine whether there is a Hamiltonian cycle, the best way is to search through all possible cycles. Euler s problem: Is there a tour of a graph that visits each edge exactly once? Exercise: Prove Euler s theorem: A connected graph contains an Euler cycle iff each vertex has an even number of incident edges. Use this to argue that Euler s problem is in P.

Example: Graph isomorphism problem Graph 1 Graph 2 Problem: Is Graph 1 isomorphic to Graph 2? Worked exercise: Prove that the graph isomorphism problem is in NP. Research problem: Prove that the graph isomorphism problem is not in P.

Reducibility We say problem X is reducible to problem Y if, given an oracle to solve problem Y in one step, there is an algorithm to solve problem X in polynomial time. Example: The Hamiltonian cycle problem can be reduced to the travelling salesman problem. Does this graph have a Hamiltonian cycle? 1km 1km 1km 1km 1km 1km 1km Is there a tour of less than 8 kilometers?

Ladner The structure of NP NP NPcomplete NPI P Definition: A problem is NP-complete if it is in NP and every other problem in NP reduces to it. Not obvious that NP-complete problems even exist! Cook-Levin Theorem: Provided the first example of an NP-complete problem the satisfiability problem. Thousands of other problems are now known to be NP-complete, including the travelling salesman and Hamiltonian cycle problems. Many people believe that quantum computers won t efficiently solve NP-complete problems, but maybe can solve some problems in NPI. Candidates for NPI include factoring and graph isomorphism.

Research problem: Find an efficient quantum algorithm to solve the graph isomorphism problem.

The circuit model of computation Real computers are finite devices, not infinite, like the Turing machine. We will investigate a circuit model of computation, and explain how to define computational complexity classes in that model. Quantum computers are most conveniently understood in terms of the quantum circuit model of computation.

Examples of circuits x x x x 1 NOT x x x y NAND 1 x y y y x controlled-not gate (CNOT) x NOT AND 0 Basic elements wires (memory) x 0 NAND 1 one- and two-bit gates fanout ancilla bits in pre-prepared states.

Universality in the circuit model Exercise: Prove that the NAND gate can be used to simulate the AND, XOR and NOT gates, provided wires, fanout, and ancilla are available. Exercise: Prove that the NAND gate, wires, fanout and ancilla can be used to compute an arbitrary function f(.) with n input bits, and one output bit. (Hint: Induct on n.) We say that the NAND gate, wires, fanout and ancilla form a universal set of operations for computation. Exercise: Prove that there is a function f(.), as above, that takes at least 2 n gates to compute.

The circuit model and complexity classes Can we connect the circuit model to complexity classes like P and NP? Basic idea is to introduce a family of circuits, C n, indexed by the problem size, n. n-bit input Main point is that (modulo some technicalities) a problem is in P iff there is a family of circuits to solve the problem, C n, containing a number of elements polynomial in n. Technicalities (in brief): Our intrepid engineer needs a construction algorithm (i.e. a Turing machine) to build the circuit C n, given n. This algorithm should run in polynomial time. Such a circuit family is called a uniform circuit family. C n

Irreversibility of circuit elements 0 1 1 NAND 1 0 NAND 1 From the output of the NAND gate it is impossible to determine if the input was (0,1), (1,0), or (0,0). The NAND gate is irreversible: there is no logic gate capable of inverting the NAND. Landauer s principle: Any irreversible operation in a circuit is necessarily accompanied by the dissipation of heat. Can we compute without dissipating heat? The trick is to compute using only reversible circuit elements! Importance to us: not heat dissipation, but the fact that quantum gates are most naturally viewed as reversible gates.

Some reversible circuit elements x x x x x y y x y y y x The Toffoli gate (or controlled-controlled-not). x x x x x y y y y y z z x y z z x y z

How to compute using reversible circuit elements Idea: embed irreversible gates in reversible gates, making use of extra ancilla bits. Example: The reversible NAND gate. x y 1 x y 1 x y

How to compute using reversible circuit elements Example: fanout. x x 0 x

Up to constant factors the resource requirements in the two models are the same, so complexity classes like P and NP do not change in a reversible circuit model of computation. How to compute using reversible circuit elements Original circuit: uses NAND gates, wires, fanout, and ancilla x f f( x) Reversible circuit: uses CNOT and Toffoli gates, wires, and ancilla x f( x) f ' 0,0,...,0 gx

Can we eliminate the garbage? z z f( x) x 0,0,...,0 f ' f( x) g x ( f ') 1 x 0,0,...,0 Canonical form: (x,z) ( xz, fx ( )) Complexity classes like P and NP are again unchanged. Exercise: Show that it is impossible to do universal computation using only one- and two-bit reversible logic gates.

Digression: what can be measured in quantum mechanics? Computer science can inspire fundamental questions about physics. We may take an informatic approach to physics. (Compare the physical approach to information.) Problem: What measurements can be performed in quantum mechanics?

Digression: what can be measured in quantum mechanics? Traditional approach to quantum measurements: A quantum measurement is described by an observable, M, that is, a Hermitian operator acting on the state space of the system. Measuring a system prepared in an eigenstate of M gives the corresponding eigenvalue of M as the measurement outcome. The question now presents itself Can every observable be measured? The answer theoretically is yes. In practice it may be very awkward, or perhaps even beyond the ingenuity of the experimenter, to devise an apparatus which could measure some particular observable, but the theory always allows one to imagine that the measurement could be made. - Paul A. M. Dirac

The halting observable Consider a quantum system with an infinite-dimensional state space with orthonormal basis 0, 1, 2,K M h( x) x x x = 0 Can we build a measuring device capable of measuring the halting observable? Yes: Would give us a procedure to solve the halting problem. No: There is an interesting class of superselection rules controlling what observables may, in fact, be measured.

Research problem: Is the halting observable really measurable? If so, how? If not, why not?