Top Banner
Theory of Computation and Complexity Theory COL 705 Lecture 0
27

Theory of Computation and Complexity Theory

Oct 15, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Theory of Computation and Complexity Theory

Theory of Computation and Complexity Theory

COL 705!Lecture 0!

Page 2: Theory of Computation and Complexity Theory

Class Format

Two Minors: 20% each!Major: 35%!4 HWs: 20%!Class Participation: 5%

Page 3: Theory of Computation and Complexity Theory

Resources

Slides generously shared by Manoj Prabhakaran!Text: Computational Complexity, a modern approach by Barak and Arora (freely available online)!Other resources on course webpage: http://www.cse.iitd.ac.in/~shweta/col705.html

Page 4: Theory of Computation and Complexity Theory

Plagiarism Policy

What constitutes cheating?!Any cheating results in F (minimum)!No bending this rule, no discussion!If you are facing any problems, come talk to me, I will do everything possible to help.!If you resort to cheating, I will take strictest action and have no sympathy

Page 5: Theory of Computation and Complexity Theory

Other Class TipsAsk questions! Do not be shy: if you have a doubt, then others likely do too!Be selfish, take responsibility for your learning: no one else can clarify things for you if you don’t!I care very much that you understand, and will be happy to answer as many questions as you need!Ask me to speed up or slow down, give feedback. Teaching and learning are fun when

Page 6: Theory of Computation and Complexity Theory

Computation

A paradigm of modern science!Theory of computation/computational complexity is to computer science what theoretical physics is to electronics

Page 7: Theory of Computation and Complexity Theory

Computational Complexity

Computation:!Problems to be solved!Algorithms to solve them!

in various models of computation!Complexity of a problem (in a comp. model)!

How much “resource” is sufficient/necessary

Page 8: Theory of Computation and Complexity Theory

Computational Complexity

of!Problems

in!Models of!computatio

n

w.r.t!Complexity!measures

Page 9: Theory of Computation and Complexity Theory

ProblemsInput represented as (say) a binary string!Given input, find a “satisfactory output”!

Function evaluation: only one correct output!Approximate evaluation!

Search problem: find one of many (if any)!Decision problem: find out if any!

A Boolean function evaluation (TRUE/FALSE)

Page 10: Theory of Computation and Complexity Theory

Decision Problems

Evaluate a Boolean function (TRUE/FALSE)!i.e., Decide if input has some property!

Language!Set of inputs with a particular property!e.g. L = {x | x has equal number of 0s and 1s}!Decision problem: given input, decide if it is in L

Page 11: Theory of Computation and Complexity Theory

Problems we care about?

Given a graph, find shortest path between two vertices!Given two matrices, compute their product!Given an integer, find its prime factors!Given a boolean formula, find a satisfying assignment

Page 12: Theory of Computation and Complexity Theory

Decision versions?

Is a node A on the shortest path?!Is there a factor of n that is less than k?!Given a boolean formula, is it satisfiable?

Page 13: Theory of Computation and Complexity Theory

Complexity of Languages

Some languages are “simpler” than others!L1 = {x | x starts with 0}!L2 = {x | x has equal number of 0s and 1s}!

Simpler in what way?!Fewer calculations, less memory, need not read all input, can do in an FSM

Page 14: Theory of Computation and Complexity Theory

Complexity of Languages

Relating complexities of problems!Mo = {x | x has more 0s than 1s}!Eq = {x | x has equal number of 0s and 1s}!Eq(x):!

if (Mo(x0) == TRUE and Mo(x) == FALSE) then TRUE; else FALSE!

Eq is not (much) more complex than Mo. i.e., Mo is at least (almost) as complex as Eq.

Eq reduces to Mo

Page 15: Theory of Computation and Complexity Theory

Models of Computation

FSM, PDA, TM!Variations: Non-deterministic, probabilistic. Other models: quantum computation!Church-Turing thesis: TM is as “powerful” as it gets!Non-uniform computation: circuit families

Page 16: Theory of Computation and Complexity Theory

Turing Machine

The idea behind digital computers may be explained by saying that these machines are intended to carry out any operations which could be done by a human computer. The human computer is supposed to be following fixed rules; he has no authority to deviate from them in any detail. We may suppose that these rules are supplied in a book, which is altered whenever he is put on to a new job. He has also an unlimited supply of paper on which he does his calculations. — Alan Turing

Page 17: Theory of Computation and Complexity Theory

Complexity MeasuresNumber of computational steps, amount of memory, circuit size/depth, ...!Exact numbers very much dependent on exact specification of the model (e.g. no. of tapes in TM)!

But “broad trends” robust!Trends: asymptotic!Broad: Log, Poly, Exp

Log Poly Exp

Page 18: Theory of Computation and Complexity Theory

Complexity Theory

What is computable?!For problems that are computable, how many resources do they need?!Many fundamental open problems

Page 19: Theory of Computation and Complexity Theory

Complexity Theory

Understand complexity of problems (i.e., how much resource used by best algorithm for it)!

Relate problems to each other [Reduce]!Relate computational models/complexity measures to each other [Simulate]!Calculate complexity of problems

Page 20: Theory of Computation and Complexity Theory

Complexity Classes

Collect (decision) problems with similar complexity into classes!

Relate classes to each other!Hundreds of classes!

PSPACEIP

NP

BPPP

IP=PSPACEP vs NP ?P vs BPP ?

Page 21: Theory of Computation and Complexity Theory

(NP-cap-coNP)/poly

NP/poly

PP/poly

NE/poly

(k>=5)-PBP

NC^1 PBP

LQNC^1

CSL

+EXP

EXPSPACE

EESPACEEEXP

+L

+L/poly +SAC^1

AL

P/poly

NC^2

P

BQP/poly

+P

ModP

SF_2

AmpMP

SF_3

+SAC^0

AC^0[2]

QNC_f^0

ACC^0

QACC^0

NC

1NAuxPDA^p

SAC^1

AC^1

2-PBP

3-PBP

4-PBP

TC^0

TC^0/poly

AC^0

AC^0/poly

FOLL

MAC^0QAC^0

L/poly

AH

ALL

AvgP

HalfP

NT

P-Close

P-Sel

P/log

UPbeta_2P

compNP

AM

AM[polylog]

BPP^{NP}

QAM

Sigma_2P

ZPP^{NP}

IP

Delta_3PSQG

BP.PP

QIP[2] RP^{NP}

PSPACE

MIPMIP* QIP

AM_{EXP}

IP_{EXP}

NEXP^{NP}

MIP_{EXP}

EXPH

APP

PP

P^{#P[1]}

AVBPP

HeurBPP

EXP

AWPP

A_0PP

Almost-PSPACE

BPEXP

BPEEMA_{EXP}

MP

AmpP-BQP

BQP

Sigma_3P

BQP/log

DQP

NIQSZK QCMAYQP

PH

AvgE

EE

NEE

ENearly-P

UE

ZPE

BH

P^{NP[log]}

BPP_{path}

P^{NP[log^2]}

BH_2

CH

EXP/poly

BPE

MA_E

EH

EEE

PEXP

BPL

PL

SC

NL/poly

L^{DET}

polyL

BPP

BPP/log

BPQP

Check

FH

N.BPP

NISZK

PZK

TreeBQP

WAPP

XOR-MIP*[2,1]

BPP/mlog

QPSPACE

frIP

MA

N.NISZK

NISZK_h

SZK

SBP

QMIP_{le}

BPP//log

BPP/rlog

BQP/mlog

BQP/qlog

QRG ESPACE

QSZK

QMA

BQP/qpoly

BQP/mpoly

CFL

GCSL

NLIN

QCFL

Q

NLINSPACE

RG

CZK

C_=L

C_=P

Coh

DCFL

LIN

NEXP

Delta_2P

P^{QMA}S_2P

P^{PP}

QS_2P

RG[1]

NE

RPE

NEEXP

NEEE

ELEMENTARY

PR

R

EP

Mod_3PMod_5P

NP

NP/one RP^{PromiseUP}US

EQP

LWPP

ZQP

WPP

RQP

NEXP/poly

EXP^{NP}

SEH

Few

P^{FewP}

SPP

FewL

LFew

NL SPL

FewP

FewUL

LogFew

RP

ZPP

RBQPYP

ZBQP

IC[log,poly]

QMIP_{ne}QMIP

R_HLUL

RL

MAJORITY

PT_1

PL_{infty}

MP^{#P}

SF_4

RNC

QNC

QP

NC^0

PL_1

QNC^0 SAC^0

NONE

PARITY

TALLY

REG

SPARSE

NP/log

NT*

UAPQPLINbetaP

compIP

RE

QMA(2)

SUBEXP

YPP

Complexity Zoo!

(NP-cap-coNP)/poly

NP/poly

PP/poly

NE/poly

(k>=5)-PBP

NC^1 PBP

LQNC^1

CSL

+EXP

EXPSPACE

EESPACEEEXP

+L

+L/poly +SAC^1

AL

P/poly

NC^2

P

BQP/poly

+P

ModP

SF_2

AmpMP

SF_3

+SAC^0

AC^0[2]

QNC_f^0

ACC^0

QACC^0

NC

1NAuxPDA^p

SAC^1

AC^1

2-PBP

3-PBP

4-PBP

TC^0

TC^0/poly

AC^0

AC^0/poly

FOLL

MAC^0QAC^0

L/poly

AH

ALL

AvgP

HalfP

NT

P-Close

P-Sel

P/log

UPbeta_2P

compNP

AM

AM[polylog]

BPP^{NP}

QAM

Sigma_2P

ZPP^{NP}

IP

Delta_3PSQG

BP.PP

QIP[2] RP^{NP}

PSPACE

MIPMIP* QIP

AM_{EXP}

IP_{EXP}

NEXP^{NP}

MIP_{EXP}

EXPH

APP

PP

P^{#P[1]}

AVBPP

HeurBPP

EXP

AWPP

A_0PP

Almost-PSPACE

BPEXP

BPEEMA_{EXP}

MP

AmpP-BQP

BQP

Sigma_3P

BQP/log

DQP

NIQSZK QCMAYQP

PH

AvgE

EE

NEE

ENearly-P

UE

ZPE

BH

P^{NP[log]}

BPP_{path}

P^{NP[log^2]}

BH_2

CH

EXP/poly

BPE

MA_E

EH

EEE

PEXP

BPL

PL

SC

NL/poly

L^{DET}

polyL

BPP

BPP/log

BPQP

Check

FH

N.BPP

NISZK

PZK

TreeBQP

WAPP

XOR-MIP*[2,1]

BPP/mlog

QPSPACE

frIP

MA

N.NISZK

NISZK_h

SZK

SBP

QMIP_{le}

BPP//log

BPP/rlog

BQP/mlog

BQP/qlog

QRG ESPACE

QSZK

QMA

BQP/qpoly

BQP/mpoly

CFL

GCSL

NLIN

QCFL

Q

NLINSPACE

RG

CZK

C_=L

C_=P

Coh

DCFL

LIN

NEXP

Delta_2P

P^{QMA}S_2P

P^{PP}

QS_2P

RG[1]

NE

RPE

NEEXP

NEEE

ELEMENTARY

PR

R

EP

Mod_3PMod_5P

NP

NP/one RP^{PromiseUP}US

EQP

LWPP

ZQP

WPP

RQP

NEXP/poly

EXP^{NP}

SEH

Few

P^{FewP}

SPP

FewL

LFew

NL SPL

FewP

FewUL

LogFew

RP

ZPP

RBQPYP

ZBQP

IC[log,poly]

QMIP_{ne}QMIP

R_HLUL

RL

MAJORITY

PT_1

PL_{infty}

MP^{#P}

SF_4

RNC

QNC

QP

NC^0

PL_1

QNC^0 SAC^0

NONE

PARITY

TALLY

REG

SPARSE

NP/log

NT*

UAPQPLINbetaP

compIP

RE

QMA(2)

SUBEXP

YPP

Collect (decision) problems with similar complexity into classes!

Relate classes to each other!Hundreds of classes!

Page 22: Theory of Computation and Complexity Theory

Complexity Classes

Easy to define classes but hard to define meaningful classes!!Capture genuine computational phenomenon such as parallelism!Robust under variations of computational model!Possibly closed under natural operations

Page 23: Theory of Computation and Complexity Theory

Central Open QuestionsIs finding a solution as easy as verifying one? Is P= NP?!Is every sequential algorithm parallelizable? Is P = NC?!Are time efficient algorithms the same as those that use little space? Is P=L?! Can every efficient randomised algorithm be converted to an efficient deterministic one? Is P = BPP?

Page 24: Theory of Computation and Complexity Theory

Complexity in various settings

With various models of computation: decision trees, interactive settings, probabilistic computation!Various measures: depth, width, amount of communication, number of rounds, amount of randomness, amount of non-uniformity, ...!Various connections: time vs. space, randomness vs. hardness

Page 25: Theory of Computation and Complexity Theory

CryptographyNeed to prove that a scheme is secure (according to some definition)!

i.e., breaking security has high complexity!Reductions: if you could break my scheme’s security efficiently, I can solve a hard problem almost as efficiently!Hard problems: almost all instances hard!

For most keys scheme should be secure!Contrast with Information Theory: limited cryptography if no computational constraints on adversary

Page 26: Theory of Computation and Complexity Theory

Computational Complexity in Economics/Games

Traditionally, no computational constraints for strategizing players!But many problems in game-theory are computationally hard!

Rational players may not be able to play optimally!Suggests the need to redesign markets/financial instruments to be computationally tractable!

Recent results...

Page 27: Theory of Computation and Complexity Theory

All that and much more..

Welcome to COL 705!!Textbook: www.cs.princeton.edu/theory/complexity/