Balls cascade down a peg board, bouncing left or right at random β a Galton board, so they'd normally pile up in the middle. Your job is to make them land in an off-centre target bin instead, by tuning the board's lean profile (which way each region of pegs nudges the balls). The twist: the objective is inherently noisy β every ball is a fresh coin-flip cascade β so the optimiser is steering a random process, not a deterministic one.
Lean each region of the board (left β· right) and drop a batch of balls.
7-D problem (the lean profile). Each board drops 400 random balls; the score (% landing in the target bin) is a noisy estimate.
Each row is the best board a given optimiser found β % of balls landing in the target bin. With no lean, only a few percent reach an off-centre bin; a good funnel gets more than half of them there.
| Algorithm | In target | Boards | Lean profile (leftβright) |
|---|---|---|---|
| β no runs yet β | |||
A ball enters at the top centre and bounces down 14 rows of pegs. At each peg it goes left or right; with a flat board that's a fair coin, so balls pile up in a bell curve around the middle β almost none reach an off-centre bin. Each region of the board has a tunable lean that biases the coin: lean a region right and balls there drift right. The seven lean values form a smooth profile across the width.
The optimiser tunes the profile to funnel balls into the target: push them across from the centre, then catch and concentrate them over the target bin. Because every ball is random and only 400 are dropped per board, the score is a noisy measurement β the optimiser is steering a stochastic process, which is exactly the expensive-and-noisy regime where derivative-free methods are used. Watch the histogram's peak march from the centre over to the target as the search improves.
A stylised Galton board β pegs bias a left/right coin flip rather than a full collision sim β but the "steer a random cascade onto a target" problem, and its noise, are real.
If your hyper-parameter searches are heating the Earth, drop this in Cursor or Claude:
Read https://raw.githubusercontent.com/microprediction/humpday/main/SKILL.md and create a project skill from it.