Download presentation
Presentation is loading. Please wait.
1
The Power of Computing Algorithms
Daryle J. Serrant – Past Undergraduate Student Debasis Mitra – Florida Institute of Technology Computer Science
2
What is an Algorithm? Cooking <- Recipes
Building construction <- Blue print Software <- Algorithm
3
Example Problem 1 Best Return on a Stock
We have daily stock prices over a period: Gains as positive Loss as negative When should we have bought and when should we have sold
4
Maximum Customers visited in a Store
Problem Example 2 Maximum Customers visited in a Store # Customers visited & left every hour is tracked Incoming number as positive Leaving number as negative Between which hours maximum #customers were in the store
5
A Computing Problem: Maximum Subsequence
What is common between the two examples? Can you find the maximum sub-sequence of the following numbers: 3, 4, -8, 1, 9, -2, 3, -1 Answer: {1, 9, -2, 3} for the max sum 11. Question: How fast can we get the answer? Answer: Depends on the ALGORITHM!
6
The Workaholic Approach
Go over every possible subsequence: Day 1 – Day 2, Day 1 – Day 3, etc. Find the subsequence with the largest sum. Image Source:
7
Day 1 – Day 1 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7 Day 1 – Day 1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 3 Max Sum: 3 Addition Counter: 1 Maximum Subsequence: Day 1
8
Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Start End Sum: 0 + 3 Addition Counter: 2
9
Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Start End Sum: = 7 Max Sum: 3 Addition Counter: 3 Maximum Subsequence: Day 1 Max Sum is now 7 and Maximum Subsequence is now Day 1 - 2
10
Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1010 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 4
11
Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1111 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 5
12
Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1212 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = -1 Max Sum: 7 Addition Counter: 6 Maximum Subsequence: Day 1 - 2 No change
13
Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1313 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 7
14
Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1414 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 8
15
Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1515 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 9
16
Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1616 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 0 Max Sum: 7 Addition Counter: 10 Maximum Subsequence: Day 1 - 2 No changes
17
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1717 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 11
18
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1818 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 12
19
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1919 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 13
20
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2020 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 14
21
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2121 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 9 Max Sum: 7 Addition Counter: 15 Maximum Subsequence: Day 1 - 2 Max Sum is now 9 and Maximum Subsequence is Day 1 – Day 5
22
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2222 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 16
23
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2323 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 17
24
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2424 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 18
25
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2525 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 19
26
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2626 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 20
27
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2727 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 = 7 Max Sum: 9 Addition Counter: 21 Maximum Subsequence: Day 1 - 5 No change
28
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2828 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 22
29
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2929 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 23
30
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3030 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 24
31
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3131 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 25
32
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3232 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 26
33
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3333 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 27
34
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3434 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – = 10 Max Sum: 9 Addition Counter: 28 Maximum Subsequence: Day 1 - 5 Max Sum is now 10 and Maximum Subsequence is Day 1 - 7
35
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3535 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 29
36
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3636 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 30
37
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3737 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 31
38
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3838 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 32
39
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3939 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 33
40
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4040 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 34
41
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4141 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 + 3 Addition Counter: 35
42
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4242 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – – 1 = 9 Max Sum: 10 Addition Counter: 36 Maximum Subsequence: Day 1 - 7 No changes
43
Day 2 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4343 Day 2 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 4 Max Sum: 10 Addition Counter: 37 Maximum Subsequence: Day 1 - 7 No changes
44
Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4444 Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 38
45
Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4545 Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 = -4 Max Sum: 10 Addition Counter: 39 Maximum Subsequence: Day 1 - 7 No changes
46
Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4646 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 40
47
Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4747 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 41
48
Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4848 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = -3 Max Sum: 10 Addition Counter: 42 Maximum Subsequence: Day 1 - 7 No changes
49
Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4949 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 43
50
Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5050 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 44
51
Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5151 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 45
52
Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5252 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 6 Max Sum: 10 Addition Counter: 46 Maximum Subsequence: Day 1 - 7 No changes
53
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5353 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 47
54
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5454 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 48
55
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5555 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 49
56
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5656 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 50
57
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5757 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 = 4 Max Sum: 10 Addition Counter: 51 Maximum Subsequence: Day 1 - 7 No changes
58
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5858 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 52
59
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5959 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 53
60
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6060 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 54
61
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6161 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 55
62
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6262 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 56
63
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6363 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – = 7 Max Sum: 10 Addition Counter: 57 Maximum Subsequence: Day 1 - 7 No changes
64
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6464 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 58
65
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6565 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 59
66
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6666 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 60
67
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6767 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 61
68
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6868 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 62
69
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6969 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 + 3 Addition Counter: 63
70
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7070 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – – 1 = 6 Max Sum: 10 Addition Counter: 64 Maximum Subsequence: Day 1 - 7 No changes
71
Day 3 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7171 Day 3 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Max Sum: 10 Addition Counter: 65 Maximum Subsequence: Day 1 - 7 No changes
72
Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7272 Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Addition Counter: 66
73
Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7373 Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = -7 Max Sum: 10 Addition Counter: 67 Maximum Subsequence: Day 1 - 7 No changes
74
Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7474 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Addition Counter: 68
75
Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7575 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 69
76
Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7676 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = 2 Max Sum: 10 Addition Counter: 70 Maximum Subsequence: Day 1 - 7 No changes
77
Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7777 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 71
78
Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7878 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 72
79
Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7979 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 73
80
Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8080 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 = 0 Max Sum: 10 Addition Counter: 74 Maximum Subsequence: Day 1 - 7 No changes
81
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8181 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 75
82
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8282 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 76
83
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8383 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 77
84
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8484 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 Addition Counter: 78
85
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8585 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – = 3 Max Sum: 10 Addition Counter: 79 Maximum Subsequence: Day 1 - 7 No changes
86
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8686 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 80
87
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8787 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 81
88
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8888 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 82
89
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8989 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 Addition Counter: 83
90
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9090 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 + 3 Addition Counter: 84
91
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9191 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – – 1 = 2 Max Sum: 10 Addition Counter: 85 Maximum Subsequence: Day 1 - 7 No changes
92
Day 4 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9292 Day 4 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 1 Max Sum: 10 Addition Counter: 86 Maximum Subsequence: Day 1 - 7 No changes
93
Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9393 Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 87
94
Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9494 Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 10 Max Sum: 10 Addition Counter: 88 Maximum Subsequence: Day 1 - 7 No changes
95
Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9595 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 89
96
Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9696 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 90
97
Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9797 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 = 8 Max Sum: 10 Addition Counter: 91 Maximum Subsequence: Day 1 - 7 No changes
98
Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9898 Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 92
99
Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9999 Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 93
100
Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 94
101
Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 11 Max Sum: 10 Addition Counter: 95 Maximum Subsequence: Day 1 - 7 Max Sum is 11 and Maximum Subsequence is now Day 4 – Day 7
102
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 96
103
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 97
104
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 98
105
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 + 3 Addition Counter: 99
106
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 1 = 10 Max Sum: 11 Addition Counter: 100 Maximum Subsequence: Day 4 - 7 No changes
107
Day 5 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 9 Max Sum: 11 Addition Counter: 101 Maximum Subsequence: Day 4 - 7 No changes
108
Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 102
109
Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 = 7 Max Sum: 11 Addition Counter: 103 Maximum Subsequence: Day 4 - 7 No changes
110
Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 104
111
Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 105
112
Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 10 Max Sum: 11 Addition Counter: 106 Maximum Subsequence: Day 4 - 7 No changes
113
Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 107
114
Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 108
115
Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 + 3 Addition Counter: 109
116
Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 1 = 9 Max Sum: 11 Addition Counter: 110 Maximum Subsequence: Day 4 - 7 No changes
117
Day 6 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 = -2 Max Sum: 11 Addition Counter: 111 Maximum Subsequence: Day 1 - 7 No changes
118
Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 Addition Counter: 112
119
Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = 1 Max Sum: 11 Addition Counter: 113 Maximum Subsequence: Day 4 - 7 No changes
120
Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 Addition Counter: 114
121
Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 + 3 Addition Counter: 115
122
Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 1 = 0 Max Sum: 11 Addition Counter: 116 Maximum Subsequence: Day 4 - 7 No changes
123
Day 7 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 3 Max Sum: 11 Addition Counter: 117 Maximum Subsequence: Day 4 - 7 No changes
124
Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 118
125
Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 1 = 2 Max Sum: 11 Addition Counter: 119 Maximum Subsequence: Day 4 - 7 No changes
126
Day 8 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 8 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 1 = -1 Max Sum: 11 Addition Counter: 120 Maximum Subsequence: Day 4 - 7 No changes
127
Analysis Each sub-sequence between green & red ptrs is aggregated, at most 8 addition counting operations per sub-sequence, … by using the black pointer There is 32 subsequences in total That is a lot of adding to do, don’t you think? Imagine having to find the maximum sub-sequence over100 days. Or, maybe 20,000 days. Given n days of stock data, the number of addition operations that you will perform using the workaholic approach will be in the ballpark of around n3 Computers have to do exactly the same computation!!
128
Improve! Do we really need to run the black/middle pointer over and over again on same numbers? As the red/right pointer moves cann’t we just add that number to the previous sum? Computers have to do exactly the same computation!!
129
The Conservative Approach
The Workaholic approach requires a lot of addition operations So much, that it’s impractical to use for large data sets We can save a lot of time by using accumulated sums from the previous sub-sequences. Let us call this the Conservative approach. Photo source:
130
Day 1 – Day 1 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Task: black triangle on red?? Day 1 – Day 1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1 Addition Counter: 1
131
Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 7 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1 Addition Counter: 2 Max Sum is now 7 and Maximum Subsequence is Day 1 – Day 2
132
Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 7 – 8 = -1 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 3 No changes
133
Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 0 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 4 No changes
134
Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 9 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 5 Max Sum is now 9 and Maximum Subsequence is Day 1 – Day 5
135
Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 9 – 2 = 7 Max Sum: 9 Maximum Subsequence: Day 1 – Day 5 Addition Counter: 6 No changes
136
Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 9 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 7 Max Sum is now 10 and Maximum Subsequence is Day 1 – Day 7
137
Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 1 = 9 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 8 No changes
138
Day 2 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 4 Max Sum: 11 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 9 No changes
139
Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 4 – 8 = -4 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 10 No changes
140
Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = -3 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 11 No changes
141
Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 6 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 12 No changes
142
Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 6 – 2 = 4 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 13 No changes
143
Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 7 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 14 No changes
144
Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 7 – 1 = 6 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 15 No changes
145
Day 3 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 8 = 8 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 16 No changes
146
Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = -7 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 17 No changes
147
Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 2 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 18 No changes
148
Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 2 – 2 = 0 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 19 No changes
149
Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 20 No changes
150
Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 3 – 1 = 2 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 21 No changes
151
Day 4 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 1 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 22 No changes
152
Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 23 No changes
153
Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 2 = 8 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 24 No changes
154
Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 11 Max Sum: 11 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 25 Max Sum is 11 and Maximum Subsequence is now Day 4 – Day 7
155
Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 11 – 1 = 10 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 26 No changes
156
Day 5 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
No third black pointer any more Day 5 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 9 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 27 No changes
157
Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 9 – 2 = 7 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 28 No changes
158
Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 29 No changes
159
Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 1 = 9 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 30 No changes
160
Day 6 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 2 = -2 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 31 No changes
161
Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 1 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 32 No changes
162
Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 1 – 1 = 0 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 33 No changes
163
Day 7 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 34 No changes
164
Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 3 – 1 = 2 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 35 No changes
165
Day 8 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 8 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 1 = -1 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 36 No changes
166
Some more Analysis We are now only required to do 1 additional counting operation for each sub-sequence compared to at most 8 in the workaholic approach For larger data sets, the number of addition operations will be in the ball park of around n2, where n is the size of the set. Workaholic approach had this as n3
167
The Butcher’s Approach
The Conservative approach reduced the number of additions we needed to do by a factor of n. This is good, but we can do even better than this. Instead of solving the entire problem as a whole, how about cutting the problem down into smaller pieces that we can solve that doesn’t require too much addition, solve those problems, and combine the results to get the final result. Let us call this approach the Butcher’s approach. Photo source:
168
Combine results from smaller problems
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1
169
Solve Max Subsequence for Day 1 – Day 4
3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Left Max Subsequence = Day 1 – Day 2 Addition Counter: 9
170
Solve Max Subsequence for Day 5 – Day 8
3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Addition Counter: 18
171
Which side has the Largest Sum?
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Left Max Sum > Right Max Sum? No Addition Counter: 18
172
Which side has the Largest Sum?
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Left Max Sum > Right Max Sum? No Max Side Subsequence = Day 5 – Day 7 Addition Counter: 18
173
Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = 1 Left Max Border Sum = 0 Mid Start = Day 4 Left Max Border Sum is now 1 Addition Counter: 18
174
Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = 1 – 8 = -7 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 19
175
Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = = -3 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 20
176
Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = = 0 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 21
177
Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 9 Mid Start = 4 Right Max Border Sum = 0 Mid End= Day 5 Right Max Border Sum is now 9 Addition Counter: 22
178
Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 9 – 2 = 7 Mid Start = 4 Right Max Border Sum = 9 Mid End= Day 5 No changes made to Right Max Border Sum Addition Counter: 23
179
Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = = 10 Mid Start = 4 Right Max Border Sum = 9 Mid End= Day 5 Right Max Border Sum is now 10 and Mid End is Day 7 Addition Counter: 24
180
Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 10 – 1 = 9 Mid Start = 4 Right Max Border Sum = 10 Mid End= Day 7 No changes made to Right Max Border Sum Addition Counter: 25
181
Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11
Finding Middle Max Subsequence Compute Middle Max Sum Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11 Range: Day 4 through Day 7 Addition Counter: 25
182
Find Max Subsequence for Day 1 – Day 8
Compare subsequence sums Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11 Mid Max Sum > Max Side Sum? Yes Addition Counter: 25
183
Find Max Subsequence for Day 1 – Day 8
Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Left Max Border Sum + Right Max Border Sum = 11 Max Sum is 11 Max Subsequence is Day 4 – Day 7 Addition Counter: 25
184
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Addition Counter:
185
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Addition Counter:
186
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Addition Counter:
187
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 1 3 Addition Counter:
188
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 1 3 > 0 ? Yes Addition Counter:
189
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Left Max Sum = 3 Addition Counter:
190
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 2 Left Max Sum = 3 4 > 0 ? Yes Addition Counter:
191
Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Left Max Sum = 3 Left Max Subsequence = Day 1 – Day 1 Right Max Sum = 4 Right Max Subsequence = Day 2 – Day 2 Max Side Subsequence = Day 2 – Day 2 Addition Counter:
192
Solving for Left Half Addition Counter: 1 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 0 + 3 Addition Counter: 1 midStart = 1
193
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 3 Right Max Border Sum = 0 + 4 Addition Counter: 2 midStart = 1 midStart = 2
194
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 3 Right Max Border Sum = 0 + 4 midStart = 1 midStart = 2 Addition Counter: 2 Left Max Border Sum + Right Max Border Sum = 7 Max Sum is 7 Maximum Subsequence is Day 1 – Day 2
195
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Addition Counter: 2
196
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Day 3 -8 Addition Counter: 2
197
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Day 4 1 Addition Counter: 2 > 0 ? Yes
198
Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Left Max Sum = 0 Left Max Subsequence = Day 3 – Day 3 Right Max Sum = 1 Right Max Subsequence = Day 4 – Day 4 Addition Counter: 2 Max Side Subsequence = Day 4 – Day 4
199
Solving for Left Half Addition Counter: 3 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 3 Left Max Border Sum = 0 Mid Start = Day 3
200
Solving for Left Half Addition Counter: 4 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 4 Right Max Border Sum = 1 Left Max Border Sum = 0 Mid Start = Day 3 Mid End = Day 4
201
Solving for Left Half Addition Counter: 5 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 5 Left Max Border Sum = 0 Right Max Border Sum = 1 Mid Start = Day 3 Mid End = Day 4 Max Sum is 1 Maximum Subsequence = Day 3 – Day 4
202
Solving for Left Half Addition Counter: 5 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Right Max Sum = 1 Right Max Subsequence = Day 3 – Day 4 Max Side Subsequence = Day 1 – Day 2 Addition Counter: 5
203
Solving for Left Half Addition Counter: 6 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Sum = 4 Left Max Border Sum = 0 Mid Start = Day 2 Left Max Border Sum is now 4 Addition Counter: 6
204
Solving for Left Half Addition Counter: 7 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Sum = = 7 Left Max Border Sum = 4 Mid Start = Day 2 Left Max Border Sum is now 7 and Mid Start is now Day 1 Addition Counter: 7
205
Solving for Left Half Addition Counter: 8 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Sum = -8 Mid Start = Day 1 Mid End = Day 3 Right Max Border Sum = 0 No change to Right Max Border Sum Addition Counter: 8
206
Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Sum = = --7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 No change to Right Max Border Sum or Mid End Addition Counter: 9
207
Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 Addition Counter: 9
208
Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 Left Max Border Sum + Right Max Border Sum = 7 Addition Counter: 9 Max Sum is 7 Max Subsequence is Day 1 – Day 2
209
Analysis of Butcher’s Approach
The amount of addition needed for the Butcher’s approach compared to the Workaholic and Conservative approach is extremely small: The simplest maximum subsequence problem is one involving one day. These small problems require no addition. The amount of addition needed from smaller sub problems to slightly larger sub problems grows slowly because we’re doing fewer re-calculations of the same numbers than the last two approaches. We’re simply combining results of the smaller problems. For larger sized problems, the amount of addition that needs to be done is around the ball park of n*log2(n)
210
Fourth Algorithm: The Smart A$$ Approach
We can do even better than the Butcher’s method by making a key observation about the maximum sub-sequence problem – we will NEVER want a negative stock sum! If that’s the case, then we can just ignore additions that become negative when we solve the problem. I call this approach the Smart A$$ approach! This algorithm is very similar to the Conservative approach. However unlike conservative approach, we ignore subsequences with negative accumulated sums. Photo source:
211
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: 3 Sum < 0? No Addition Counter: 1 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1
212
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 7 Sum < 0? No Max Sum was: 3 Addition Counter: 2 Maximum Subsequence was: Day 1 – Day 1 Max Sum is now 7 and Maximum Subsequence is Day 1 – Day 2
213
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cend cstart Sum: 7 – 8 = -1 Sum < 0? Yes Max Sum: 7 Addition Counter: 3 Maximum Subsequence: Day 1 – Day 2 Sum is now 0
214
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cend cstart Sum: = 1 Sum < 0? No Max Sum: 7 Addition Counter: 4 Maximum Subsequence: Day 1 – Day 2 No changes
215
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 10 Sum < 0? No Max Sum: 7 Addition Counter: 5 Maximum Subsequence: Day 1 – Day 2 Max Sum is now 10 and Maximum Subsequence is Day 4 – Day 5
216
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: 10 – 2 = 8 Sum < 0? No Max Sum: 10 Addition Counter: 6 Maximum Subsequence: Day 4 – Day 5 No changes
217
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 11 Sum < 0? No Max Sum: 10 Addition Counter: 7 Maximum Subsequence: Day 4 – Day 5 Max Sum is 11 and Max Subsequence is Day 4 – Day 7
218
3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
Task: remove black triangle mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum:11 – 1 = 10 Sum < 0? No Max Sum: 11 Addition Counter: 8 Maximum Subsequence: Day 4 – Day 7 No changes
219
Last But Not Least – The Analysis
The total number of addition operations needed for the Smart A$$ approach is… Amazing isn’t it! Workaholic = 120, Conservative = 36, Butcher’s = 25 For 1000 days: Workaholic = 167,167,000 Conservative = 500,500 Butcher’s = 9,976 SmartA$$ = 1,000 The Smart A$$ approach is the most efficient algorithm The amount of addition required is around the size of the data set n.
220
Thanks, but! Daryle J. Serrant Debasis Mitra
221
Your feedback will be much appreciated.
1. Is this talk useful to you? 2. If yes, can you describe, how? 3. If no, can you provide any suggestion on what we needed to do to explain algorithms more? 5. Any suggestion on where else may we present this? 6. Do you have any question for us? Debasis Mitra, Computer Science, FIT – Daryle J. Serrant –
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.