Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computational Processes

Similar presentations


Presentation on theme: "Computational Processes"— Presentation transcript:

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

2 Die Hard Picture source:

3 Die Hard Supplies: 3 Gallon Jug 5 Gallon Jug Water

4 Die Hard Transferring water: 3 Gallon Jug 5 Gallon Jug

5 Die Hard Transferring water: 3 Gallon Jug 5 Gallon Jug

6 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?

7 Die Hard Work it out now!

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

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

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

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

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

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

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

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

16 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?

17 Die Hard Work it out now!

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

19 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

20 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

21 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)

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

23 (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) 

24 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.

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

26 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

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

28 The robot can move diagonally. y
2 1 x

29 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

30 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

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

32 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.

33 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.

34 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.

35 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.

36 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).

37 Class Problems

38 Robert Floyd Picture source:


Download ppt "Computational Processes"

Similar presentations


Ads by Google