Every Who down in Whoville enjoys Christmas Day
But you are the Grinch! And whatever they say
You HATE Christmas Day, with those terrible lights
(They shine into your eyes, and they shine much too bright)
You HATE Christmas Day, with those huge awful trees
(You think you're allergic...they're making you sneeze)
But you HATE most of all all those Christmasy toys
That bring Christmas morning that Christmasy noise
(Oh god, all the noise! All the noise, noise, NOISE, NOISE!)
(If there's one thing you hate, it's the noise, noise, NOISE, NOISE!!!!!!)
And tomorrow you know all those noises will start
As the presents bring joy to each Who child's heart
And they'll show all this joy (as Who children do)
By making loud noises and bothering you!
But as you are leaving earplugs by your bed
And preparing the pillows to cover your head
You realize there might be a thing you can do!
You can't steal the presents (they'd know it was you)
But for fifty-three years you've been hearing this riot
And sometimes it's louder! And sometimes more quiet!
For the more a Who child enjoys all their toys
The more they will make all that terrible noise
But what if - you think - they were feeling less glee?
Yes, that is the way, it's so clear now you see!
For it's long been tradition (among all the Whos)
That when you give presents, each child must get two
And it's also tradition there (don't ask me why)
To distribute them randomly, closing your eyes
So at night, when the Whos sleep and dream of their joy
You'll creep in and rearrange all of those toys
And the very next morn, when the Who children wake,
They'll run down the stairs and their presents they'll take
But then, why, instead of the gifts that they're hoping
You'll give each one gifts that will make them start moping!
A doll for the Who who thinks dolls are for babies!
Puppies for the Whos who think they carry rabies!
And then, why at last, why on Christmas this year
You'll sleep soothed by the sound of those Who children's tears!
But the whisper, so soft, from your treacherous heart:
You could bring them more joy, and no more stand apart...
The ten current Who children are:
You have the following 20 toys to allocate among them (remember, exactly two toys to each child, and no child may get two of the same toy, or you'll give yourself away!):
An answer key and leaderboard will be posted on Monday the 10th (my holiday schedule permitting).
As usual, working together is allowed and encouraged, but for the sake of those who wish to work alone please spoiler-tag (type '>!' at the start of a line) any comments with information on the dataset.
Thank you to abstractapplic for feedback on a draft of this! (For clarification, abstractapplic has no inside information on the dataset and can still play the scenario).
blum: 6fum: 8(F), 4(M)gah: 11-age/2sloo: 5+age/2trum: 5who: 5(F), 9(M)
Everyone has one non-trum toy that produces double-noise, for them, regardless of age.trum produces double-noise if someone else in your family also received a trum this year.
Give sloo to young, gah to old, who to female, fum to male, and trum to separate families. Do not give doublers.e.g. [doubler | give them these]Andy Sue Who 12 M 1550 sloo | gah fumBetty Drew Who 11 F 1551 fum | gah whoSally Sue Who 11 F 1552 fum | who trum Phoebe Drew Who 9 F 1553 sloo | who blumFreddie Lou Who 8 M 1554 sloo | fum trumEddie Sue Who 8 M 1555 who | fum blumCindy Drew Who 6 F 1556 who | trum blumMary Lou Who 6 F 1557 gah | sloo whoOllie Lou Who 5 M 1558 fum | sloo blumJohnny Drew Who 4 M 1559 blum | sloo fum
Noise is generated per-present, and combined additively for each child. Under ordinary circumstances:
Each child has exactly one gift type which produces twice as much Noise as it would by default. This remains consistent over a child’s life (or at least until adolescence), so we can use past preferences to predict how they’ll react this year.
Allocations for minimizing Noise:
(I haven’t confirmed this is literally optimal given my model but I bet it’s pretty close)
Andy: F + G
Betty: W + G
Sally: W + T
Phoebe: W + T
Freddie: F + B
Eddie: F + B
Cindy: B + T
Mary: W + S
Ollie: S + B
Johnny: F + S
Allocations for maximizing Noise:
Andy: S + B
Betty: F + B
Sally: F + S
Phoebe: G + B
Freddie: S + T
Eddie: W + T
Cindy: W + T
Mary: G + F
Ollie: F + W
Johnny: B + W
The weird hipstery approach I’m actually going with, after way too much overthinking about the “presents are allocated randomly” rule:
I suspect the convention the Whos think is best,
Is a lesson, a puzzle, a trick and a test.
I doubt that they’re stupid, or that they don’t care:
It’s how they teach children to trade and to share.
As a rule, the traditions your ancestors used,
Should not be ignored. But they can be improved!
The dice may choose poorly. I know that I won’t.
So, each child gets gifts: one they like, one they don’t.
That way, I make sure that no Who is left out,
Of the joy or the dealing this day is about.
Andy: F + B
Betty: S + B
Sally: G + S
Phoebe: F + B
Freddie: W + T
Eddie: S + T
Cindy: G + T
Mary: W + F
Ollie: B + W
Johnny: F + W
And as for myself, well, it’s hard to believe
That I missed this solution: I’ll simply just . . . leave!
Flee south for the winter! Head back when it’s done!
Let them have all their joys, all their noise, all their fun!
(If I so disapprove of how Whos spend this day,
I shouldn’t own property here anyway!)
My current analysis and results:
I noticed that the B/F/W combinations tended to be consistent when given to the same child multiple times, so looked at these first.
Assuming that noise is a summed contribution from both toys, then it looks like B usually contributes 6, with some discrepancies consistent with it sometimes contributing 12 instead.
F meanwhile always contributes 4, 8 or 16.
amd W contributes 5(only if F is 8 or 16), 9 (only if F is 4 or 8), 10 (only if F is 8), or 18 (seen with F=4).
Note: it is always possible to make such an attribution with 3 variables, regardless if it really is a sum, but it seems to have worked out in view of subsequent results.
Next, I looked at T, combinations with which seem to be inconsistent but not so as to suggest an age relationship. It looks like T is for some whos 5 or 10 (inconsistently) and for other 10 or 20 (inconsistently).
G and S vary usually from about 5-11 (Note - I wrote this before finding the numbers for the latest Whos!), with G dropping by 1 every 2nd year, and S rising by one every second year for any particular Who.
Comparing to actual recent results we can fill in expectations for how much noise our current Whos will make next year with different toys:
Who | B | F | G | S | T | W
1550 Andy Sue | 6 | 4 | 5 | 18 22 | 5 or 10 | 9
1551 Betty Drew | 6 | 16 | 11 | 10 |5 or 10 | 5
1552 Sally Sue | 6 | 16 | 6 | 10 | ? 5 or 10 | 5
1553 Phoebe Drew | 6 | 8 | 7 | 18 | ? 5 or 10 | 5
1554 Freddie Lou | ? 6 | 4 | 7 | 17 | 5 or 10 | 9
1555 Eddie Sue | 6 | 4 | 7 | 9 | ? | ? 9 or 18
1556 Cindy Drew | 6 | 8 | 8 | 8 | ? 5 or 10 | 10
1557 Mary Lou | ? 6 | 8 | 19 16 | 8 | 5 or 10 | ? 5
1558 Ollie Lou | ? | 8 | 8 or 9 | 7 | ? | 9
1559 Johnny Drew | 12 | 4 | ? | 7 | ? 5 or 10 | 9
And whoops, looks like something's wrong since Andy Sue had a huge jump in noise from toy combos including Sloo-Slonkers between the ages of 3 and 4, looking like he enjoys S to the tune of 14 noise at age 4 and 16 at 7. Something's also up with Phoebe Drew. But, I continued to project forwards in both cases to 18 at the current year anyway as if nothing is wrong.
Also something wrong with Mary Lou and Gah-Ginkas, again I press forward assuming it's all OK.
While we have seen combos with Sally Sue, Phoebe Drew, Eddie Sue, Cindy Drew, Ollie Lou and johnny Drew involving Trum-Troopas, they've all had a 10 contribution from T, so we don't know if they get 5/10 or 10/20 from them.
Now for the solutions:
we have 4B, 4F, 2G, 3S, 3T and 4W to distribute.
In order to try to maximize noise, I'll distribute as follows:
1550 Andy Sue S + W
1551 Betty Drew F + G
1552 Sally Sue F + T
1553 Phoebe Drew F + S + T
1554 Freddie Lou B + S
1555 Eddie Sue F + T + W
1556 Cindy Drew F+ W
1557 Mary Lou B+ G
1558 Ollie Lou B+ W T
1559 Johnny Drew B+ W
In order to try to minimize noise, I'll distribute as follows:
1550 Andy Sue F + G T
1551 Betty Drew B + W
1552 Sally Sue B + W
1553 Phoebe Drew B + W
1554 Freddie Lou F + T
1555 Eddie Sue F + G
1556 Cindy Drew B + S
1557 Mary Lou T + W
1558 Ollie Lou G + S + T
1559 Johnny Drew F + S
edit: in view of abstractapplic's observations, we can fill in some of the ?'s in the chart, added in above. The information that a doubling is involved with the anomalies also changes how we project forward the high Gs or Ss. This also led me to reinterpret some results above, also I noticed I had accidentally projected upwards instead of down for G for Mary Lou. Whoops. Since we don't know what Ollie Lou has doubled, I've now avoided giving him T when minimizing noise, even at the expense of a less optimal G allocation. Also fishing for more upside when maximizing noise.
Min noise in 9 max is 32, with an average of 16.Everyone with > 28 noise had a Trum-Troopa. All the really low instances of noise which involved Trum-Troops were wither with a boy paired with a Fum-Foozler or a girl pared with a Who-Whonker.
Girls tend to make much more noise with Fum-Foozler than boys.
There seems to be a slight bias to younger children producing less noise with Sloo-Slonker.
If a child likes/dislikes a Gah-Ginka one year it looks like it will also like/dislike it another year.
Blum-Blooper appears to be consistently unpopular with Fum-Foozler and normally unpopular with Who-Whonker
Blum-Blooper: Ideally goes with Fum-Foozler but possibly also Who-Wonker.Fum-Foozler: Only goes to boysGah-Ginka: Goes to children that haven't liked it in previous years.Sloo-Slonker: Give to younger childrenTrun-Troops: Go to either boys with a Fum-Foozler or girls with a Who-WhonkerWho-Whonker: From others
Four Blum-Bloopers Four Fum-Foozlers Two Gah-Ginkas Three Sloo-Slonkers Three Trum-Troopas Four Who-Whonkers
Andy Sue Who 12 M Gah-Ginka, Blum-BlooperBetty Drew Who 11 F Trun-Troops, Who-WhonkerSally Sue Who 11 F Trun-Troops, Who-WhonkerPhoebe Drew Who 9 F Trun-Troops, Who-WhonkerFreddie Lou Who 8 M Fum-Foozler, Blum-BlooperEddie Sue Who 8 M Gah-Ginka, Fum-FoozlerCindy Drew Who 6 F Blum-Blooper, Who-WhonkerMary Lou Who 6 F Sloo-Slonker, Blum-BlooperOllie Lou Who 5 M Fum-Foozler, Sloo-SlonkerJohnny Drew Who 4 M Fum-Foozler, Sloo-Slonker
I haven't finished my analysis yet, let alone decided a strategy based on it, but I have made some progress.
Findings thus far:
Girls with a Blum-Blooper make 6 Noise.
Girls with a Who-Whonker make 5 or 10 Noise.
Girls with a Fum-Foozler make 8 or 16 Noise.
Boys with a Blum-Blooper make 6 or 12 Noise.
Boys with a Who-Whonker make 9 or 18 Noise.
Boys with a Fum-Foozler make 4 or 8 Noise.
Sloo-Sloonkers make 4+ceiling((1+Age)/2) Noise, except sometimes you give them to boys and they make more.
Gah-Ginkas make 4+ceiling((14-Age)/2) Noise, except sometimes you give them to girls and they make more.
Trum-Troopas are hard to predict but there are a lot of 5s and 10s in that distribution and the average is pretty high.
And most importantly:
Though I haven't quite confirmed this yet, it looks like children who react unusually to a given present one Christmas (doubled Who-Whonker Noise, bonus Sloo-Slonker Noise, etc) tend to react the same way on subsequent Christmases. If that's true, it means my next step should be researching the noise history of the individual Whos I'm targeting.
I split the problem into two parts: first, modeling how much noise will be produced by a given Who child with given presents, and second, how to optimize that value.
I declined to use the names of the Who children, since my intuition said that those shouldn't be predictive of anything. Also, there were Who children with the same name and same ID who lived years apart, which seemed like a bug.
I tried several models (random forest, gradient boosted forest) but got the best cross-validation accuracy when I used a ridge regression with product features. I ended up using the following features:
['Age', 'BlumBlooper__Age', 'BlumBlooper', 'FumFoozler__Age', 'FumFoozler__BlumBlooper', 'FumFoozler', 'GahGinka__Age', 'GahGinka__BlumBlooper', 'GahGinka__FumFoozler', 'GahGinka', 'SlooSlonker__Age', 'SlooSlonker__BlumBlooper', 'SlooSlonker__FumFoozler', 'SlooSlonker__GahGinka', 'SlooSlonker', 'SlooSlonker__GenderDummy_F', 'SlooSlonker__GenderDummy_M', 'TrumTroopa__Age', 'TrumTroopa__BlumBlooper', 'TrumTroopa__FumFoozler', 'TrumTroopa__GahGinka', 'TrumTroopa__SlooSlonker', 'TrumTroopa', 'TrumTroopa__GenderDummy_F', 'TrumTroopa__GenderDummy_M', 'WhoWhonker__Age', 'WhoWhonker__BlumBlooper', 'WhoWhonker__FumFoozler', 'WhoWhonker__GahGinka', 'WhoWhonker__SlooSlonker', 'WhoWhonker__TrumTroopa', 'WhoWhonker', 'WhoWhonker__GenderDummy_F', 'WhoWhonker__GenderDummy_M', 'GenderDummy_F__Age', 'GenderDummy_F__BlumBlooper', 'GenderDummy_F__FumFoozler', 'GenderDummy_F__GahGinka', 'GenderDummy_F', 'GenderDummy_M__Age', 'GenderDummy_M__BlumBlooper', 'GenderDummy_M__FumFoozler', 'GenderDummy_M__GahGinka', 'GenderDummy_M__GenderDummy_F', 'GenderDummy_M']
To optimize the noise, I assigned the presents randomly, checking that each was unique. Then I did a Markov chain optimization procedure where I swapped presents if it improved the score or made it worse by less than a random threshold. This procedure could probably be improved. I'm thinking about applying a quadratic programming library to the optimization procedure, but that seems kind of difficult.
Maximum noise proposal
Estimated noise: 195.72749659660874
Andy Sue Who WhoWhonker SlooSlonker
Betty Drew Who FumFoozler SlooSlonker
Sally Sue Who FumFoozler SlooSlonker
Phoebe Drew Who BlumBlooper FumFoozler
Freddie Lou Who TrumTroopa WhoWhonker
Eddie Sue Who TrumTroopa WhoWhonker
Cindy Drew Who GahGinka FumFoozler
Mary Lou Who BlumBlooper GahGinka
Ollie Lou Who BlumBlooper WhoWhonker
Johnny Drew Who TrumTroopa BlumBlooper
Minimum noise proposal
Estimated noise: 129.9544674398252
Andy Sue Who TrumTroopa GahGinka
Betty Drew Who BlumBlooper WhoWhonker
Sally Sue Who BlumBlooper WhoWhonker
Phoebe Drew Who BlumBlooper WhoWhonker
Freddie Lou Who FumFoozler GahGinka
Eddie Sue Who FumFoozler TrumTroopa
Cindy Drew Who SlooSlonker WhoWhonker
Mary Lou Who BlumBlooper SlooSlonker
Ollie Lou Who FumFoozler TrumTroopa
Johnny Drew Who FumFoozler SlooSlonker
Also, there were Who children with the same name and same ID who lived years apart, which seemed like a bug.
The same Who Child can appear in several rows while they are growing up (for instance, Who Child 1530, Eddie Lou Who, appears in the dataset 12 times, from 1 year old in year 19 to 12 years old in year 30). This is not a bug, children do in fact have more than one Christmas while growing up.
I don't think there are any cases where the same ID shows up many years apart - if there were that would indeed be a bug. Do you have an example of that you can point me at?
Ah, I got confused by Phoebe Drew Who, who shows up with ids 1533 and 1553.
After I posted my first post, but before reading the other answers, it occurred to me that I was probably leaving noise on the table by not modeling the individual Who children. Reading the other answers, it seems like doing that is key.
Revised results below when taking individual idosyncrasies into account in the ridge regression:
Andy Sue Who TrumTroopa FumFoozler
Betty Drew Who WhoWhonker BlumBlooper
Phoebe Drew Who WhoWhonker BlumBlooper
Freddie Lou Who TrumTroopa GahGinka
Eddie Sue Who GahGinka FumFoozler
Cindy Drew Who SlooSlonker BlumBlooper
Mary Lou Who SlooSlonker WhoWhonker
Ollie Lou Who SlooSlonker FumFoozler
Johnny Drew Who TrumTroopa FumFoozler
Andy Sue Who SlooSlonker WhoWhonker
Betty Drew Who SlooSlonker FumFoozler
Sally Sue Who TrumTroopa FumFoozler
Phoebe Drew Who SlooSlonker FumFoozler
Freddie Lou Who WhoWhonker BlumBlooper
Eddie Sue Who BlumBlooper WhoWhonker
Mary Lou Who TrumTroopa GahGinka
Ollie Lou Who WhoWhonker BlumBlooper
Johnny Drew Who BlumBlooper TrumTroopa
But why would you want to do that?
If you go on a vacation to the beach, somewhere far away, and those gift givers are given a chance in turn, to hear far, far too much noise, perhaps next year, they'll get quieter gifts.
Or they'll decide they love noise and decide to have a christmas parade next year!
Do you dare try your hand at the dice?