Elle Meredith
October 23, 2017
580

# Algorithms to live by and why should we care

Presented at Full Stack Toronto Conference

October 23, 2017

## Transcript

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

Require written instructions

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

dictionary Binary Search

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

63 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
21. ### 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
23. ### 22 = 4 23 = 8 24 = 16 25

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

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

tells us when to stop and make a decision

34. ### 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!
35. ### Go through each item in the box if you find

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

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

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

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

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

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

solved by dividing it into smaller problems

case

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

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

and if it isn’t => switch 4 2

5 4

55. ### There’s nothing so fatiguing as the eternal hanging on of

an uncompleted task William James

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

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

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

1: 4 days task = 5 days waiting = 6 days of waiting
65. ### 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

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

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

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

same order in which the people (nodes) were added

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

easier to find solutions

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

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

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

X Y 22 + 12 Distance between A to B
86. ### (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
87. ### (5-3)2 + (5- 1)2 A (2,1) C (5,5) B (1,3)

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

42 Distance between C to B (5-3)2 + (5- 1)2
89. ### 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
90. ### Comedy Action Drama Horror Romance 4 4 5 1 1

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

5, 3, 2, 1) lachlan => (2, 1, 5, 3, 5)
92. ### (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
94. ### (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
96. ### * K-Nearest Neighbours uses feature extraction, which means converting an

item into a list of numbers that can be compared

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

well enough. Anonymous

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

stopping • Stay clear from finer details
105. ### 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