Welcome to CS 154 Li-Yang Tan Andreas Garcia Duligur Ibeling Duligur

Slides:



Advertisements
Similar presentations
Formal Models of Computation Part III Computability & Complexity
Advertisements

Lecture 24 MAS 714 Hartmut Klauck
1 Welcome to CS105 and Happy and fruitful New Year שנה טובה (Happy New Year)
CIT 596 Theory of computing Traditional course (CIS 511, CIS 262) and other similarly named courses in other universities are divided into 3 parts that.
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
Proof Points Key ideas when proving mathematical ideas.
Welcome to CSE105 and Happy and fruitful New Year
March 11, 2015CS21 Lecture 271 CS21 Decidability and Tractability Lecture 27 March 11, 2015.
CS2420: Lecture 1 Vladimir Kulyukin Computer Science Department Utah State University.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
UMass Lowell Computer Science Foundations of Computer Science Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Th. 9/3/2009.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
A Brief Introduction To The Theory of Computer Science and The PCP Theorem By Dana Moshkovitz Faculty of Mathematics and Computer Science The Weizmann.
David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 2: Modeling Computers.
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Computer Science Science of Computation Omer Reingold.
Introduction to CS Theory Lecture 1 – Introduction Piotr Faliszewski
Introduction to the Theory of Computation
MATH 310, FALL 2003 (Combinatorial Problem Solving) MoWeFr 1:20 McGregory 214.
MAT 331 Mathematical solving problem with computers.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Lecture 1: Introduction CS 6903: Modern Cryptography Spring 2009 Nitesh Saxena Polytechnic Institute of NYU.
Prof. Matthew Hertz WTC 207D /
Welcome to Honors Intro to CS Theory Introduction to CS Theory (Honors & Traditional): - formalization of computation - various models of computation (increasing.
CS 390 Introduction to Theoretical Computer Science.
CS 345: Theory of Computation I Spring Quarter 2015.
Introduction to the Theory of Computation Fall Semester, School of Information, Renmin University of China.
Welcome to Honors Intro to CS Theory Introduction to CS Theory (Honors & Traditional): - formalization of computation - various models of computation (increasing.
Welcome to CMPSC 360!. Today Introductions Student Information Sheets, Autobiography What is Discrete Math? Syllabus Highlights
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
Introduction COMP283 – Discrete Structures. JOOHWI LEE Dr. Lee or Mr. Lee ABD Student working with Dr. Styner
Fall 2014 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
Artificial Intelligence: Introduction Department of Computer Science & Engineering Indian Institute of Technology Kharagpur.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
THEORY OF COMPUTATION Komate AMPHAWAN 1. 2.
David Evans Class 15: P vs. NP (Smiley Puzzles and Curing Cancer) CS150: Computer Science University of Virginia Computer.
CMPT 308 — Computability and Complexity Fall 2004 Instructor: Andrei Bulatov, TA: Ramsay Dyer, Learning.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 0 Introduction Some slides are in courtesy of Prof.
CIT 592 Discrete Math Lecture 1. By way of introduction … Arvind Bhusnurmath There are no bonus points for pronouncing my last name correctly Please call.
Computer Science 20 Discrete Mathematics for Computer Science 1 All the Math you need for your Computer Science courses that you won’t learn in your Math.
Theory of Computation. Introduction We study this course in order to answer the following questions: What are the fundamental capabilities and limitations.
Formal Languages and Automata Theory
Lecture 00: Introduction
Formal Foundations-II [Theory of Automata]
CSc 1302 Principles of Computer Science II
Computational problems, algorithms, runtime, hardness
COMP 283 Discrete Structures
CS154 Formal Languages and Computability
CSE322 PUMPING LEMMA FOR REGULAR SETS AND ITS APPLICATIONS
Fall 2016 MATH 250: Calculus III.
Great Theoretical Ideas In Computer Science
Mathematical Induction II
CS154, Lecture 18:.
Computer Science 102 Data Structures CSCI-UA
NP-Completeness Yin Tat Lee
Computer Networks CNT5106C
Professor Tandy Warnow
RAJALAKSHMI ENGINEERING COLLEGE
Introduction to CS II Data Structures
CS 583 Fall 2006 Analysis of Algorithms
Automata and Formal Languages
CS154, Lecture 13: P vs NP.
CPS 173 Computational problems, algorithms, runtime, hardness
COMPSCI 330 Design and Analysis of Algorithms
NP-Completeness Lecture for CS 302.
Welcome to the First-Year Experience!
Lecture 22 Complexity and Reductions
Welcome to the First-Year Experience!
Presentation transcript:

Welcome to CS 154 Li-Yang Tan Andreas Garcia Duligur Ibeling Duligur Natalie Ng Omer Reingold This Photo by Unknown Author is licensed under CC BY-NC-ND

Introduction to Automata and Complexity Theory CS 154 Introduction to Automata and Complexity Theory the of Computation

Textbook Additional Reading: Boaz Barak, Introduction to Theoretical Computer Science (online)

This class is about formal models of computation What is computation? What can and cannot be computed? What can and cannot be efficiently computed? Philosophy, Mathematics, and Engineering (… Science, …)

Computing: “to find out (something) by using mathematical processes” Merriam-Webster.

Computers

Algorithms

Computing: “evolution of an environment via repeated application of simple, local rules” ~Avi Wigderson

Computational Lens

Limited Resources

What you Need to Know About the Course

Meet us on Piazza: piazza.com/stanford/fall2018/cs154/home Sign up! piazza.com/stanford/fall2018/cs154

Other Resource Pages Submitting Homework: Gradescope Presentations and reading https://omereingold.wordpress.com/cs-154-introduction-to-automata-and-complexity-theory/ (Google: Omer Reingold CS 154) Lecture recordings: Stanford Canvas What? 4 platforms? Yes: you are Stanford students, you can handle it

Homework / Problem Sets Homework will be assigned every Tuesday (except for the week before the midterm) and will be due one week later at the beginning of class. No late submission. We will drop your lowest homework grade Assigned reading: Integral part of course work. Classes good for organizing, reminding, highlighting, giving important perspective. Not so good for replacing a textbook. Doubly true if you forgot CS 103

Homework Collaboration and Submission You may (even encouraged to) collaborate with others, but you must: Try to solve all the problems by yourself first List your collaborators on each problem If you receive a significant idea from somewhere, you must acknowledge that source in your solution. Write your own solutions Assignments and submissions through gradescope.com Best to write in LaTex

Thinking of taking another course at the same time? “Students must not register for classes with conflicting end quarter exams.” BUT if the other course: - Allows you to take our midterm in-class (Ours is on Tuesday 10/30). - Does not have its own final exam (Ours is Wednesday, December 12, 12:15-3:15 p.m) Then we’ll allow it. Not necessarily recommended.

What You’ll Say in December Some will say: “a review of 103 with slightly more depth” Some: “CS 103 to be pretty easy … but I really struggled in CS 154 just because it moved at a much faster pace” All the range from easy to hard; from boring to fascinating One will say: “I'm just really fond of Omer's accent.” Others will be too polite to say

The Big Challenge and Opportunity This class is the first non-mandatory theory class: Offers a pick into some cool stuff Requires more maturity My advice: Keep with the lectures, psets, reading Come to office hours Concentrate on knowledge rather than grades (grades will follow).

Back to the Theory of Comutation

Gödel’s Incompleteness Theorem completely blew my mind … But Quantum Computers bla bla bla Gödel’s Incompleteness Theorem completely blew my mind … Complexity-Theoretic Church–Turing Thesis bla bla bla How strong is your PCP?

Chapter I Finite Automata (40s-50s): Very Simple Model (constant memory) Characterize what can be computed (through closure properties) First encounter: non-determinism (power of verified guessing) Argue/characterize what cannot be computed Optimization, learning More modern (complexity-theoretic) perspective: streaming algorithms, communication complexity

Chapter II Computability Theory 30’s – 50’s Very Powerful Models: Turing machines and beyond (Un)decidability – what cannot be computed at all Foot in the door – an unrecognizable language Many more problems, through reductions Hierarchy of exceedingly harder problems The foundations of mathematics & computation Kolmogorov complexity (universal theory of information)

Chapter III Complexity Theory: 60’s – Time complexity, P vs. NP, NP-completeness Non-determinism comes back Our foot in the door – SAT, a problem that is likely hard to compute Many more problems through (refined) reductions An hierarchy of hard problems Other Resources: space, randomness, communication, power,… Crypto, Game Theory, Computational Lens

Map Coloring Given a map, can we “legally” color the countries with 3 colors? (4-coloring always exists) This is the central question of computer science (and one of the central questions of math). Really?

(Mathematical) Proofs A good proof should be: Clear – easy to understand Correct and convincing Like an ogre (or a parfait)

Sipser: In writing mathematical proofs, it can be very helpful to provide three levels of detail 1st: a short phrase/sentence giving a “hint” of the proof (e.g. “Proof by contradiction,” “Proof by induction,” “Follows from the pigeonhole principle”)‏ 2nd: a short, one paragraph description of the main ideas 3rd: the full proof

Proofs in Class During lectures, my proofs will usually contain intuitive descriptions and only a little of the gory details (the third level) if at all You should think about how to fill in the details! You aren’t required to do this (except on some assignments) but it can help you learn.

Some Methods of Proof Construction, Contradiction, Induction (and strong induction), and our BFFTC (if not BFF): Reduction

Proof Example Suppose A  {1, 2, …, 2n} with |A| = n+1 Show that there are always two numbers in A such that one number divides the other number Example: A  {1, 2, 3, 4} 1 divides every number. If 1 isn’t in A then A = {2,3,4}, and 2 divides 4

THE PIGEONHOLE PRINCIPLE LEVEL 1 HINT 1: THE PIGEONHOLE PRINCIPLE If 6 pigeons occupy 5 holes, then at least one hole will have more than one pigeon

THE PIGEONHOLE PRINCIPLE LEVEL 1 HINT 1: THE PIGEONHOLE PRINCIPLE If 6 pigeons occupy 5 holes, then at least one hole will have more than one pigeon

Call m the “odd part” of a LEVEL 1 HINT 1: THE PIGEONHOLE PRINCIPLE If n+1 pigeons occupy n holes, then at least one hole will have more than one pigeon HINT 2: Every integer a can be written as a = 2km, where m is an odd number (k is an integer). Call m the “odd part” of a

Proof Idea: Given A  {1, 2, …, 2n} and |A| = n+1 LEVEL 2 Proof Idea: Given A  {1, 2, …, 2n} and |A| = n+1 Using the pigeonhole principle, we’ll show there are elements a1  a2 of A such that a1 = 2im and a2 = 2km (for some odd m and integers i and k)

Proof: A  {1, 2, …, 2n} with |A| = n+1 LEVEL 3 A  {1, 2, …, 2n} with |A| = n+1 Each element of A can be written as a = 2km  m is an odd number in {1,..., 2n} Observe there are n odd numbers in {1, …, 2n} Since |A| = n+1, there must be two distinct numbers in A with the same odd part Let a1 and a2 have the same odd part m.  a1 = 2im and a2 = 2km  one must divide the other (e.g., if k > i then a1 divides a2)

Parting thoughts: Computation a powerful notion Good theory is about the right level of abstraction Lets have some fun Questions?