We recently had my cousin Max over for dinner, but I think more primarily in his mind to play with my modest collection of Legos. But there was some sort of struggle he appeared to have some anguish over; he seemed at least somewhat “intense” throughout the evening. To try to figure out what he was engrossed in, I thought about the things we did while he was over:
- Building things out of Legos
- Eating dinner (macaroni casserole)
- Eating dessert (banana splits)
- Playing games on the computer
- Watching TV
Now, the only way I can explain his “struggle” is that he was continually optimizing his experience while visiting. That is to say, of the above mentioned activities, he was actually assigning a value consistent with how much he enjoys doing that activity, and evaluating periodically whether continuing doing that thing was necessary or desired. After all, there was a finite amount of time he would be visiting.
Case in point: While playing Legos, it became time to eat dinner, upon which I just got up and sat down at the table (my wife is very nice when guests are over and handles much of the preparation; I do cleanup later). But Max continued to play Legos until everyone was sitting down and he was called over one last time. The value he assigned to eating dinner must have been less than that of playing Legos, which is generally to be expected of most kids. Needless to say, he returned to playing Legos as quickly and acceptibly as he could. It was at that point that I thought, “This kid is a machine.”
More interesting was the time to eat dessert. I had made some banana splits, with ice cream, bananas, chocolate syrup, whipped cream, and a cherry. When it came time to eat, Max ate everything but the bananas, then ran back to play Legos. I knew he liked bananas, but apparently he made the activity of ’eating banana splits’ more granular, and assigned a value to the `eating bananas’ part of that which was less than that of `playing Legos’, and took off. Save for some vocabulary, he’s ready for Optimization Algorithm Design.
Seriously, at first I thought he was simply going about his visit using the Greedy Method, (which is not to say that he is greedy, but that he approaches problems with this method of optimization.) But upon further observation, his approach of the problem of eating banana splits by dividing it into some number of subproblems (eating the ice cream, eating the whipped cream, eating the bananas…) shows some awareness of this Dynamic Programming concept.
Or maybe I’m thinking too much into it.