420

# Algorithms to live by and why should we care

Presented at Full Stack Toronto Conference

October 23, 2017

## Transcript

4. None
5. None

9. ### In everyday life • Learnt • Figure out ourselves •

Require written instructions

12. ### Suppose we want to search for a word in the

dictionary Binary Search

22. ### 10 STEPS 1000 -> 500 -> 250 -> 125 ->

63 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
23. ### 17 STEPS 100,000 -> 50,000 -> 25,000 -> 12,500 ->

6,300 -> 3,150 -> 1,575 -> 788 -> 394 -> 197 -> 99 -> 50 -> 25 -> 13 -> 7 -> 4 -> 2 -> 1

= 32 26 = 64
25. ### 22 = 4 23 = 8 24 = 16 25

= 32 26 = 64 log2 4 = 2 log2 8 = 3 log2 100 => 6.643 log2 100000 => 16.609

33. ### * When we don’t know all the options, optimal stopping

tells us when to stop and make a decision

35. None

37. ### Make a pile of boxes while the pile is not

empty Grab a box if you find a box, add it to the pile of boxes Go back to the pile if you find a diary, you’re done!
38. ### Go through each item in the box if you find

a box… if you find a diary, you’re done!
39. None
40. ### def factorial(x) if x == 1 1 else x *

factorial(x-1) end end
41. ### def factorial(x) if x == 1 1 else x *

factorial(x-1) end end
42. ### def factorial(x) if x == 1 1 else x *

factorial(x-1) end end
43. ### factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2)

factorial(2) = 2 * factorial(1) factorial(1) = 1
44. ### factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2)

factorial(2) = 2 * factorial(1) factorial(1) = 1 4 * 3 * 2 * 1 = 24
45. ### * Recursion can be applied whenever a problem can be

solved by dividing it into smaller problems

case

51. ### empty array array with one element No need to sort

these arrays 33 Quicksort
52. ### check if first element is small than the second one,

and if it isn’t => switch 4 2

5 4

66. ### Client 1: 4 days task Client 2: 1 day task

= 5 days of work
67. ### Client 1: 4 days task = 4 days waiting Client

2: 1 day task = 5 days waiting = 9 days of waiting
68. ### Client 2: 1 day task = 1 days waiting Client

1: 4 days task = 5 days waiting = 6 days of waiting
69. ### Shortest processing time Client 2: 1 day task = 1

days waiting Client 1: 4 days task = 5 days waiting = 6 days of waiting Metric: sum of completion times

77. ### graph = { "elle"=>["hannah", "caleb", "lachlan"], "hannah"=>["michelle", "schneem"], "caleb"=>["schneem"], "lachlan"=>["keith"],

"michelle"=>[], "schneem"=>[], "keith"=>[] }
78. ### graph = { "elle"=>["hannah", "caleb", "lachlan"], "hannah"=>["michelle", "schneem"], "caleb"=>["schneem"], "lachlan"=>["keith"],

"michelle"=>[], "schneem"=>[], "keith"=>[] }
79. ### * Breadth first search works only we search in the

same order in which the people (nodes) were added

84. ### * Just relax! by relaxing the constraints, we make it

easier to find solutions

87. ### A (2,1) B (1,3) X Y (X1 -X2 )2 +

(Y1 -Y2 )2 Distance between A to B C (5,5)
88. ### (1-3)2 + (2- 1)2 A (2,1) C (5,5) B (1,3)

X Y Distance between A to B
89. ### (1-3)2 + (2- 1)2 A (2,1) C (5,5) B (1,3)

X Y 22 + 12 Distance between A to B
90. ### (1-3)2 + (2- 1)2 A (2,1) C (5,5) B (1,3)

X Y 22 + 12 4 + 1 K = 2.236 Distance between A to B
91. ### (5-3)2 + (5- 1)2 A (2,1) C (5,5) B (1,3)

X Y Distance between C to B
92. ### A (2,1) C (5,5) B (1,3) X Y 22 +

42 Distance between C to B (5-3)2 + (5- 1)2
93. ### A (2,1) C (5,5) B (1,3) X Y 22 +

42 Distance between C to B (5-3)2 + (5- 1)2 4 + 16 K = 4. 472
94. ### Comedy Action Drama Horror Romance 4 4 5 1 1

5 5 3 2 1 2 1 5 3 5
95. ### hannah => (4, 4, 5, 1, 1) caleb => (5,

5, 3, 2, 1) lachlan => (2, 1, 5, 3, 5)
96. ### (4-5)2 + (4-5)2 + (5-3)2 + (1-2)2 + (1- 1)2

hannah => (4, 4, 5, 1, 1) caleb => (5, 5, 3, 2, 1)

K = 2.64
98. ### (4-2)2 + (4- 1)2 + (5-5)2 + (1-3)2 + (1-5)2

hannah => (4, 4, 5, 1, 1) lachlan => (2, 1, 5, 3, 5)

K = 5.74
100. ### * K-Nearest Neighbours uses feature extraction, which means converting an

item into a list of numbers that can be compared

104. ### If you can’t explain it simply, you don’t understand it

well enough. Anonymous

stopping
108. ### Strategies • Regularisation • Add weight to points • Early

stopping • Stay clear from finer details
109. ### It is intolerable to think of spending one’s whole life

like a neuter bee, working, working, and nothing after all. Charles Darwin

Cathy O’Neil