## myininaya 3 years ago Anyone interested in talking about dynamic algorithms vs static algorithms. I mean can anyone give me an example of each maybe by drawing a tree or something.

1. myininaya

I would like if you could treat me as if I were dumb.

2. myininaya

|dw:1329374236354:dw| so this is a static algorithm re-computes from scratch in time O(n) we change the max input to 15 but why 15 how is 15 found? is it just a random number I wonder?... I mean does the algorithm choose a random number to replace the max

3. myininaya

dynamic algorithm |dw:1329374475415:dw|

4. myininaya

so here we don't have to start from scratch

5. myininaya

i think that is what it is saying we don't have to start from scratch anyways

6. myininaya

|dw:1329374645988:dw| then for some reason the inputs are arranged in a different order on the tree

7. myininaya

i think it would make sense to say 15 is a random pick

8. myininaya

oops and then the inputs are arranged again |dw:1329374799217:dw|

9. myininaya

and we throw 36 back in the mix

10. myininaya

i like static better lol it is easier to undertand

11. chris

Hmmmm, I'm lost! lol

12. myininaya

do you have any example of dynamic algorithm that you do understand?

13. myininaya
14. myininaya

I guess I just don't know how he is arranging the inputs of the tree

15. chris

hee hee looking.

16. chris

ok so yes, 15 is a random number

17. myininaya

wait maybe...we go by the max of the next level 31>25 so we move 31 up and 19 up and put 15 on the bottom (the other side remains unchanged)

18. myininaya

i wonder why the tree is chosen the way it is too begin with though

19. chris

the point is basically that for static algorithms, you don't use the results of previous computations as information for future results. for dynamic algorithms you can do so, and an example of this is a heap (tree by definition, not the memory kind) http://en.wikipedia.org/wiki/Heap_(data_structure)

20. chris

21. chris
22. myininaya

This is a nice little example. It isn't that complicated but I'm sure for inputs it would be ugly

23. myininaya

for more inputs*

24. maitre_kaio

Hello, I'm currently following the OCW Intro Computer Science and Dynamic programming is one of the topics studied. You could try to see those videos: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-12 http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-13 To me, the example that shows clearly what dynamic programmings is about is the Fibonnaci sequence program. There is a good explanation here: http://en.wikipedia.org/wiki/Dynamic_programming#Fibonacci_sequence

25. chris

Thanks maitre! Great resource =). myin - also check this out, through at least slide 23 http://www.slideshare.net/TraianRebedea/adc-4

26. chris

it's dynamic because heap insertion is determined in a bottom-up fashion of smaller sub problems, and an optimal state is stored after each run (making it dynamic)

27. chris

so yes, 15 is just the random example of changing input, and showing you one algorithm that just goes through the whole list to find the right spot, and another example that has the precomputation stored that in the case of heaps allows you to skip to the end and compare upwards (> or < parent) for a max of O(log n)

28. chris

I guess the author is going on to describe why dynamic algorithms are good because they can be distributed - each machine only needs some of the information

29. myininaya

Ok thanks for the links you guys and confirming 15 is random. This is my 2nd semester of learning anything "computer sciency" hopefully i can learn enough about clouds and cryptography (definitely including ABE) and secure computation to construct my own crypto-algorithm i feel so behind the other phd students that my computer science adviser has since they know all of these terms :( but i'm gonna try really hard to learn all that i can so thank you guys so much you guys are the best!

30. myininaya

if you guys think of anything else you want to say please feel free to jot it down

31. chris

lol, well, only that you'll be a genius once you understand this whole presentation haha

32. chris

(I do not)

33. myininaya

i notice slide 17-21 look like a mess to me too lol

34. myininaya

i have to look through it some more and just do some searches and hopefully find what i'm looking for

35. myininaya

so chris you are rating this presentation as hard?

36. myininaya

i honestly don't know if it is considered to be hard by normal computer people lol everything is hard to me

37. myininaya

normal meaning people who actually have a bs in computer science (compare to my math degree i know nothing )

38. chris

Well good luck myin! I'm off to sleep! This is a tough one - is there a full paper? Combiners are a bit vague to me. "precompute" reduce. Haha, well I think you need to be at least very well versed in algorithms, and at least understand map reduce as exists, and figure out what the combiners exactly are precomputing, the stored computation is the big gain.

39. myininaya

yes i have been looking at the full paper also he didn't have these drawings described in there (or if he did I misunderstood ) i will keep rereading

40. myininaya

it will be okay if i don't know everything i will just have to lead the discussion it will be okay! :) thank you guys so much again you are the best for helping me

41. myininaya

http://www.mpi-sws.org/~bhatotia/pubs/hotcloud-11.pdf this is the paper i'm reading

42. maitre_kaio

I just read the link myininaya posted earlier. Finding the max of an array is typically a problem where you can use dynamic programming because it fills the two requirements: 1. Optimal substructure: you can find the optimal solution of the problem by finding the optimal solution of its subproblems. It's easy to see that you can divide the array into subarrays, find the max of each subarrays and combine the solutions until you find the max of the array. 2. Overlapping subproblems. You can walk the tree recursively.

43. myininaya

Thanks again you guys. I stayed up all night looking at some stuff posted here and I had a good enough understanding of the paper to give what I would call a pretty good discussion on the topic. You guys rule! :)