Complexity Theory. Ahto Buldas. Introduction September 10, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

Similar documents
Handouts. CS701 Theory of Computation

Computation. Some history...

Lecture 1 - Introduction to Complexity.

Class 24: Computability

Automata Theory. Definition. Computational Complexity Theory. Computability Theory

1 Computational problems

Limits of Computation. Antonina Kolokolova

CS187 - Science Gateway Seminar for CS and Math

An Intuitive Introduction to Motivic Homotopy Theory Vladimir Voevodsky

Computational Complexity: A Modern Approach. Draft of a book: Dated January 2007 Comments welcome!

Fundamentals of Computer Science

MAA509: Quantum Computing and Information Introduction

Cellular automata are idealized models of complex systems Large network of simple components Limited communication among components No central

P vs NP & Computational Complexity

1.7 Proof Methods and Strategy

15-251: Great Theoretical Ideas in Computer Science Lecture 7. Turing s Legacy Continues

Section 7.1: Functions Defined on General Sets

Quantum Computing 101. ( Everything you wanted to know about quantum computers but were afraid to ask. )

ENEE 459E/CMSC 498R In-class exercise February 10, 2015

M. Smith. 6 September 2016 / GSAC

Introduction to Turing Machines

Gottfried Wilhelm Leibniz (1666)

Great Ideas in Theoretical Computer Science

From Greek philosophers to circuits: An introduction to boolean logic. COS 116, Spring 2011 Sanjeev Arora

Decidability: Church-Turing Thesis

University of the Virgin Islands, St. Thomas January 14, 2015 Algorithms and Programming for High Schoolers. Lecture 5

Turing Machines, diagonalization, the halting problem, reducibility

The cosmology of computational problems. Slides by Avi Wigderson

1.7 Proof Methods and Strategy

C.T.Chong National University of Singapore

CST Part IB. Computation Theory. Andrew Pitts

Computability Theory

Decidable Languages - relationship with other classes.

Notational conventions

The theory of numbers

Complexity Theory Part I

MATH 25 CLASS 8 NOTES, OCT

Self-reproducing programs. And Introduction to logic. COS 116, Spring 2012 Adam Finkelstein

Church s undecidability result

Modelling with cellular automata

The P versus NP Problem. Dean Casalena University of Cape Town CSLDEA001

Time Magazine (1984)

Exponents and Logarithms

Contents Part A Number Theory Highlights in the History of Number Theory: 1700 BC 2008

Introduction to Algorithms

Theory of Computation

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

Propositions as Types

CISC 876: Kolmogorov Complexity

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Undecibability. Hilbert's 10th Problem: Give an algorithm that given a polynomial decides if the polynomial has integer roots or not.

Turing Machines. Lecture 8

DRAFT. Algebraic computation models. Chapter 14

Computability, Undeciability and the Halting Problem

The roots of computability theory. September 5, 2016

Discrete Mathematics for CS Spring 2007 Luca Trevisan Lecture 27

4.5 Applications of Congruences

Chapter 2: The Basics. slides 2017, David Doty ECS 220: Theory of Computation based on The Nature of Computation by Moore and Mertens

To Infinity and Beyond

@igorwhiletrue

The computational model and why it doesn t matter

What is a Galois field?

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lecture 1 : Introduction

The P-vs-NP problem. Andrés E. Caicedo. September 10, 2011

Wednesday, 10 September 2008

Complexity 1: Motivation. Outline. Dusko Pavlovic. Introductions. Algorithms. Introductions. Complexity 1: Motivation. Contact.

Outline. Wednesday, 10 September Schedule. Welcome to MA211. MA211 : Calculus, Part 1 Lecture 2: Sets and Functions

CSCI3390-Lecture 6: An Undecidable Problem

Rubbing Shoulders With Newton: A New Look at a Fundamental Constant of Nature

Analysis of Algorithms. Unit 5 - Intractable Problems

Intermediate Math Circles March 6, 2013 Number Theory I

Cellular Automata. History. 1-Dimensional CA. 1-Dimensional CA. Ozalp Babaoglu

Chapter One Hilbert s 7th Problem: It s statement and origins

Theory of Computation Lecture 1. Dr. Nahla Belal

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

Computer Science and Logic A Match Made in Heaven

The Polynomial Hierarchy

Introduction to Scientific Modeling CS 365, Fall 2011 Cellular Automata

The Search for the Perfect Language

Let π and e be trancendental numbers and consider the case:

Great Theoretical Ideas

Discrete Mathematics and Probability Theory Summer 2014 James Cook Note 5

Understanding Computation

Real Analysis Prof. S.H. Kulkarni Department of Mathematics Indian Institute of Technology, Madras. Lecture - 13 Conditional Convergence

Class Note #20. In today s class, the following four concepts were introduced: decision

NOTES (1) FOR MATH 375, FALL 2012

MACHINE COMPUTING. the limitations

Infinity. The infinite! No other question has ever moved so profoundly the spirit of man. David Hilbert

MODULAR ARITHMETIC KEITH CONRAD

The Legacy of Hilbert, Gödel, Gentzen and Turing

Stephen F Austin. Exponents and Logarithms. chapter 3

Lecture 19: Universality and Computability

2. Introduction to commutative rings (continued)

Research Reflections

CSCE 551: Chin-Tser Huang. University of South Carolina

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Turing s Legacy Continues

Reverse Mathematics. Benedict Eastaugh December 13, 2011

Turing Machines and the Church-Turing Thesis

Intractable Problems [HMU06,Chp.10a]

Transcription:

Introduction September 10, 2009 Complexity Theory Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach. Ahto Buldas e-mail: Ahto.Buldas@ut.ee home: http://home.cyber.ee/ahtbu phone: 51 02 160

Introduction September 10, 2009

Introduction September 10, 2009 Textbooks Upcoming textbook: 1. Sanjeev Aurora and Boaz Barak. Complexity Theory: A Modern Approach. http://www.cs.princeton.edu/theory/complexity/ 2. Steven Rudich, Avi Wigderson (Editors). Computational Complexity Theory. 2004. 2

Some citations... As long as a branch of science offers an abundance of problems, so long it is alive; a lack of problems foreshadows extinction or the cessation of independent development. David Hilbert, 1900. The subject of my talk is perhaps most directly indicated by simply asking two questions: first, is it harder to multiply than to add? and second, why?...i (would like to) show that there is no algorithm for multiplication computationally as simple as that for addition, and this proves something of a stumbling block. Alan Cobham, 1964. 3

Computation... is the process of producing an output from a set of inputs in a finite number of steps. Some computational problems: Multiplication: Given two integer numbers, compute their product. Solving Linear Equations: Find a solution to a set of n linear equations over n variables. Dinner Party Problem: Given a list of acquaintances and a list of containing all pairs of individuals who are not on speaking terms with each other, find the largest set of acquaintances you can invite to a dinner party such that you do not invite any two who are not on speaking terms. 4

Formal Models of Computation In the beginning of the 20th century, computation was simply a person writing numbers on a note pad following certain rules. In the middle of the 20th century, the notion of computation was made much more precise. Different formal models of computation were discovered: Turing machines, lambda calculus, cellular automata, pointer machines, bouncing billiards balls, Conways Game of life, etc. All those models are universal each is capable of implementing all computations that we can conceive of on any other model. This universality motivated the invention of the standard electronic computer, which is capable of executing all possible programs. 5

Computation as a Major Scientific Concept Generalizing from models such as cellular automata, scientists have come to view many natural phenomena as computational processes. The understanding of reproduction in living things was triggered by the discovery of self-reproduction in computational machines (von Neumann, Pauli etc.). Intriguing fact: Pauli predicted the existence of a DNA-like substance in cells almost a decade before Watson and Crick discovered it. Some scientists suggested that the entire universe may be viewed as a giant computer. Such physical theories have been used in the past decade to design a model for quantum computation. 6

Computability and Complexity From 1930s to the 1950s, researchers focused on the theory of computability and showed that several interesting computational tasks are inherently uncomputable: no computer can solve them without going into infinite loops (i.e., never halting) on certain inputs. Computability will not be our focus here. We focus on issues of computational efficiency computational complexity theory is concerned with how much computational resources are required to solve a given task. 7

Some Key Questions in Complexity Theory Do some tasks inherently require exhaustive search? (P vs NP) Can algorithms use randomness to speed up computation? Can problems be solved quicker if only approximate solutions are required? Can we use hard problems to construct unbreakable ciphers? Can we use (very counterintuitive) quantum mechanical properties to solve hard problems faster? Can we generate mathematical proofs automatically? At about 40 years of age, Complexity Theory still does not completely answer to any of these questions! 8

Efficiency of Multiplication Consider the task of multiplying two integers a and b... and two algorithms: Repeated Addition: add a to itself b 1 times. Grade-School Algorithm: 4 2 3 5 7 7 1 7 3 1 1 1 5 4 2 3 0 8 2 4 4 0 7 1 Size n of the input the number of digits. For multiplying two n-digit numbers, the repeated addition uses n 10 n 1 additions, while the grade school algorithm uses 2 n 2 additions. The fastest known algorithm (n log n) uses the Fast Fourier Transform. 9

Efficiency of Solving Linear Equations The classic Gaussian elimination algorithm (named after Gauss but already known in some form to Chinese mathematicians of the first century) uses O(n 3 ) basic arithmetic operations to solve n equations over n variables. In the late 1960s, Strassen found a more efficient algorithm that uses roughly O(n 2.81 ) operations, and... The best known algorithm takes O(n 2.376 ) operations. 10

Efficiency of Solving the Dinner Party Problem Obvious algorithm: try all possible subsets from the largest to the smallest, and stop after a subset that does not include unfriendly pairs of guests. Running time = the number of subsets = 2 n. To organize a 70-person party, supercomputers would spend thousands of years... Surprisingly: We still do not know significantly better algorithms! We have reasons to suspect that no efficient algorithm exists for this task, which is also called the independent set problem, and which, together with thousands of other important problems, is NP-complete. The famous P vs NP question asks whether or not any of these problems has an efficient algorithm. 11

Proving Non-Existence of Efficient Algorithms How to prove that the current algorithm is the best? How to show that the O(n log n) multiplication algorithm can never be improved, i.e. how to show that multiplication is harder than addition which takes O(n) steps? We can also try to prove that there is no algorithm for the dinner party task that takes < 2 n/10 steps. We cannot verify all algorithms because there are infinitely many of them! Hence, we have to mathematically prove that there is no better algorithm. Impossibility results have been very fruitful (Independence of Euclid s 4th axiom, Impossibility of solving algebraic equations in radicals, etc.) 12

Conventions (i) Whole numbers: A whole number is a number in the set Z = {0, ±1, ±2,...}. A number denoted by one of the letters i, j, k, l, m, n is always assumed to be whole. If n 1, then we denote by [n] the set {1,..., n}. Integer Functions: For a real number x, we denote by x the smallest n Z such that n x and by x the largest n Z such that n x. Whenever we use a real number in a context requiring a whole number, the operator is implied. Logarithms: We denote by log x the logarithm of x to the base 2. 13

Conventions (ii) Sufficiently large n: A condition holds for sufficiently large n if it holds for every n N for some number N (for example, 2 n > 100n 2 for sufficiently large n). Sums: We use expressions such as i f(i) when the range of values i takes is obvious from the context. Strings and vectors: If u is a string or vector, then u i denotes the value of the i-th symbol/coordinate of u. 14