Computational Processes

Slides:



Advertisements
Similar presentations
Discussion #33 Adjacency Matrices. Topics Adjacency matrix for a directed graph Reachability Algorithmic Complexity and Correctness –Big Oh –Proofs of.
Advertisements

Tirgul 8 Graph algorithms: Strongly connected components.
CSE115/ENGR160 Discrete Mathematics 04/05/11 Ming-Hsuan Yang UC Merced 1.
Implementation of Pollard’s Rho Heuristic Mid-term Exam CSE670 Manoj Patil March 03, 2004.
3 Gallon Jug5 Gallon Jug Greatest Common Divisor Lecture 8: Sep 30.
Section Section Summary Recursive Algorithms Proving Recursive Algorithms Correct Recursion and Iteration (not yet included in overheads) Merge.
Proofs, Recursion, and Analysis of Algorithms Mathematical Structures for Computer Science Chapter 2 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesProofs,
Lecture 4 Discrete Mathematics Harper Langston. Algorithms Algorithm is step-by-step method for performing some action Cost of statements execution –Simple.
Great Theoretical Ideas in Computer Science.
Induction and recursion
Great Theoretical Ideas in Computer Science.
1 State Space of a Problem Lecture 03 ITS033 – Programming & Algorithms Asst. Prof.
Reading and Writing Mathematical Proofs
Verifiable Programming Reason about imperative sequential programs such as Java programs Imperative program –defines state space defined by collection.
Chapter 3 (Part 3): Mathematical Reasoning, Induction & Recursion  Recursive Algorithms (3.5)  Program Correctness (3.6)
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 4 (Part 3): Mathematical Reasoning, Induction.
Greatest Common Divisor
The Integers. The Division Algorithms A high-school question: Compute 58/17. We can write 58 as 58 = 3 (17) + 7 This forms illustrates the answer: “3.
Design of Algorithms using Brute Force Approach. Primality Testing (given number is n binary digits)
1 Section 2.1 Functions: Definitions and Examples A function ƒ from A to B associates each element of A with exactly one element of B. Write ƒ : A  B.
Application: Correctness of Algorithms Lecture 22 Section 4.5 Fri, Mar 3, 2006.
Prof. Busch - LSU1 NFAs accept the Regular Languages.
Chapter Integers and Algorithms Representations of integers
Chinese Remainder Theorem Dec 29 Picture from ………………………
MA/CSSE 473 Day 06 Euclid's Algorithm. MA/CSSE 473 Day 06 Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm.
Foundations of Discrete Mathematics Chapter 4 By Dr. Dalia M. Gil, Ph.D.
4/3/2003CSE More Math CSE Algorithms Euclidean Algorithm Divide and Conquer.
Computability Heap exercise. The class P. The class NP. Verifiers. Homework: Review RELPRIME proof. Find examples of problems in NP.
Application: Algorithms Lecture 20 Section 3.8 Wed, Feb 21, 2007.
Properties of the gcd Theorem: For any two integers a,b there exist integers x,y such that xa + yb = gcd(a,b). A proof will not be given at this point.
1 Discrete Structures – CNS2300 Text Discrete Mathematics and Its Applications Kenneth H. Rosen (5 th Edition) Chapter 2 The Fundamentals: Algorithms,
Application: Algorithms Lecture 19 Section 3.8 Tue, Feb 20, 2007.
MA/CSSE 473 Day 07 Euclid's Algorithm. MA/CSSE 473 Day 07 Student Questions Review topics not covered in class Euclid's algorithm (if there is time) extended.
RSA Cryptosystem Great Theoretical Ideas In Computer Science S. Rudich V. Adamchik CS Spring 2006 Lecture 8Feb. 09, 2006Carnegie Mellon University.
CSE 20: Discrete Mathematics for Computer Science Prof. Shachar Lovett.
If more pigeons than pigeonholes, Pigeonhole Principle.
Verifiable Programming Reason about imperative sequential programs such as Java Imperative program –defines state space defined by collection of typed.
Recursive Algorithms Section 5.4.
We do it for the glory #allbrains #Advancedgeoisthebest #Ms.uckar #thereisalsoextracreditinvolved.
Chapter 4 (Part 3): Mathematical Reasoning, Induction & Recursion
MA/CSSE 473 Day 06 Euclid's Algorithm.
MA/CSSE 473 Day 06 Euclid's Algorithm.
Advanced Algorithms Analysis and Design
Greatest Common Divisor
GCD and Optimization Problem
Number Theory and Modular Arithmetic
QuickSort QuickSort Best, Worst Average Cases K-th Ordered Statistic
CSE 20: Discrete Mathematics for Computer Science Prof. Shachar Lovett
Great Theoretical Ideas in Computer Science
Lecture 20 Guest lecturer: Neal Gupta
Asymptotics & Stirling’s Approximation
Computational Processes II
Asymptotics & Stirling’s Approximation
CSE 311: Foundations of Computing
and Structural Induction
Mathematics for Computer Science MIT 6.042J/18.062J
and Structural Induction
and Structural Induction
Computational Processes II
Computational Processes
Asymptotics & Stirling’s Approximation
Mathematics for Computer Science MIT 6.042J/18.062J
Asymptotics & Stirling’s Approximation
Application: Algorithms
Application: Algorithms
Asymptotics & Stirling’s Approximation
and Structural Induction
Cryptography Lecture 16.
Useful GCD Fact If a and b are positive integers, then gcd(a,b) = gcd(b, a mod b) Proof: By definition of mod, a = qb+ (a mod b) for.
Presentation transcript:

Computational Processes Mathematics for Computer Science MIT 6.042J/18.062J Computational Processes Copyright © Albert Meyer, 2002. Prof. Albert Meyer & Dr. Radhika Nagpal

Die Hard Picture source: http://movieweb.com/movie/diehard3/

Die Hard Supplies: 3 Gallon Jug 5 Gallon Jug Water

Die Hard Transferring water: 3 Gallon Jug 5 Gallon Jug

Die Hard Transferring water: 3 Gallon Jug 5 Gallon Jug

Psychopath’s challenge: Disarm bomb by putting 4 gallons Die Hard Psychopath’s challenge: Disarm bomb by putting 4 gallons of water on top, or it will blow up. Question: How to do it?

Die Hard Work it out now!

How to do it Start with empty jugs: (0,0) 3 Gallon Jug 5 Gallon Jug

How to do it Fill the big jug: (0,5) 3 Gallon Jug 5 Gallon Jug

Pour from big to little: How to do it Pour from big to little: (3,2) 3 Gallon Jug 5 Gallon Jug

How to do it Empty the little: (0,2) 3 Gallon Jug 5 Gallon Jug

Pour from big to little: How to do it Pour from big to little: (2,0) 3 Gallon Jug 5 Gallon Jug

How to do it Fill the big jug: (2,5) 3 Gallon Jug 5 Gallon Jug

Done!! Pour from big to little: How to do it (3,4) 3 Gallon Jug

Die Hard once and for all What if you have a 9 gallon jug instead? 3 Gallon Jug 5 Gallon Jug 9 Gallon Jug

Die Hard once and for all What if you have a 9 gallon jug instead? 3 Gallon Jug 9 Gallon Jug Can you do it? Can you prove it?

Die Hard Work it out now!

State machine: Step by step procedure, possibly responding to input.

States: {0,1,…,99, overflow} Transitions: State machines The state graph of a 99-bounded counter: start state 1 2 99 overflow States: {0,1,…,99, overflow} Transitions: 0  i < 99 i i+1 99 overflow

States: {0,1,…,99, overflow} Transitions: State machines The state graph of a 99-bounded counter: start state 1 2 99 overflow States: {0,1,…,99, overflow} Transitions: overflow overflow

Die hard state machine State machines State = amount of water in the jug: (b,l) where 0  b  3 and 0  l  5. Start state = (0,0)

State machines Die Hard Transitions: Fill the little jug: Fill the big jug: Empty the little jug: Empty the big jug:

(b,l)  5. Pour from little jug into big jug: If no overflow, then State machines 5. Pour from little jug into big jug: If no overflow, then b + l  5 otherwise (b,l) 

5. Pour from little jug into big jug: (for l >0) State machines 5. Pour from little jug into big jug: (for l >0) 6. Pour from big jug into little jug. Likewise.

Invariant: State Invariants Die hard once and for all P(state) = 3 divides number of gallons in each jug.

State Invariants Proof method (just like induction): Show base case: P(start). Invariant case: if P(q) and , then P(r). Conclusion: P holds for all reachable states, including final state (if any). q r

The Robot The robot is on a grid. y 2 1 x 0 1 2 3

The robot can move diagonally. y 2 1 x 0 1 2 3

Can it reach from (0,0) to (1,0)? y The Robot Can it reach from (0,0) to (1,0)? y ? 2 1 GOAL x 0 1 2 3

NO! P((x, y)) ::= x + y is even P((0,0)) is true. Robot Invariant NO! P((x, y)) ::= x + y is even P((0,0)) is true. Transition adds ±1 to both x and y

So all positions (x, y) reachable by robot Robot Invariant So all positions (x, y) reachable by robot have x + y even, but 1 + 0 = 1 is odd. Therefore (1,0) is not reachable.

GCD correctness Computing GCD(a, b) using the Euclidean Algorithm: Let x = a, y = b. If y = 0, return x & terminate. Else set (x:=y, y:=x mod y) simultaneously; Repeat process.

GCD correctness Example: GCD(414,662) = GCD(662, 414) since 414 mod 662 = 414 = GCD(414, 248) since 662 mod 414 = 248 = GCD(248, 166) since 414 mod 248 = 166 = GCD(166, 82) since 248 mod 166 = 82 = GCD(82, 2) since 166 mod 82 = 2 = GCD(2, 0) since 82 mod 2 = 0 Return 2.

P((x, y)) ::= [gcd(a,b) = gcd(x,y)]. GCD correctness The Invariant is P((x, y)) ::= [gcd(a,b) = gcd(x,y)]. P(start, start): at start x = a , y =b.

Transitions: (x,y)  (y, rem(x,y)) GCD correctness Transitions: (x,y)  (y, rem(x,y)) Invariant holds by Lemma: gcd(x,y) = gcd(y,rem(x,y)), for y  0.

Conclusion: on termination GCD correctness Conclusion: on termination x equals gcd(a,b). Because terminate when y = 0, so x = gcd(x,0) = gcd(x,y) = gcd(a,b).

Class Problems

Robert Floyd Picture source: http://www.stanford.edu/dept/news/report/news/november7/floydobit-117.html