Reinventing the Wheel: Discovering the Optimal Rolling Shape with PyTorch (2019)
blog.benwiener.com
blog.benwiener.com
Could this way of representing the problem (radius) introduce bias to the solution? It could probably make many kind of shapes, but it may need to overcome some huge local maxima in order to drastically change it to something else by tweaking multiple of the radii.
When writing my thesis on spoke patterns for bicycle wheels, one of the representations outperformed the others, as it had symmetry baked in. That could have made it not find some esoteric solutions (which is why I had multiple representations).
(Not claiming that OP's work isn't absolutely cool, rather suggesting paths for future improvements. :D)
It's easy to construct parametrized boundary representations (as OP used) that maintain topological invariants, but it's very difficult to use them to explore the space of possible topologies (which would be relevant if OP wanted to say, design a lighter wheel).
This can be considered a generalized example of the bias-variance tradeoff. Imposing symmetry or a parametric form can be considered forms of regularization/bias that help converge to a well-formed solutions.
Yes, but you're always going to have a prior.
You could model it as, let's say, a shape in a square grid with a certain area. Or a collection of line segments that are closed.
This is an issue common to most optimization problems, you want the simplest model that will be efficient, otherwise you might risk overfitting (or just taking too long to optimize)
If the wheels on each end of an axle aren't perfectly aligned the up and down motion won't be the same on each side. The speed of the up and down motion while moving down a modern road would be very fast. This would wear our parts far more quickly.
Theory and practical implications don't always line up. In practice it's not more optimal when applying to every day real world application.
> The performance of the wheel was based on the final speed achieved by an accelerating imaginary car, vf. The wheel was driven with a constant torque, τ, and no slipping.
There is nothing in this fitness value that defines the shape of the wheel. As described here, there's no clear reason why the shape of the wheel would affect the speed of a car (no slip, no taking into account up/down movement of the car, etc.) Rather this algorithm seems to optimize for a certain radius and the circular shape is the result of the fact that all points converge to the same optimum.
I also find the fact that it converges at a finite radius using this model suspicious. If you look at this optimization problem analytically, the optimum is obviously a wheel with a zero radius: Force on car is torque over wheel radius. If radius goes to zero, then force goes to infinity and acceleration goes to infinity and car speed goes to infinity.
Also, the wheel spoke lengths are normalized, so the wheel can't grow or shrink overall.
I'm still scratching my head while trying to figure out what's the mechanism that prevents the solution blowing up to infinity by setting the radius to zero and therefore achieving huge accelerations from a constant torque.
I think this may have been because the wheel starts accelerating from a particular point. To optimize distance traveled, it's better to have more acceleration up front. Shorter spokes means more acceleration. For the overall wheel, the spoke length is normalized, but it makes sense that the optimization would set the starting spoke shorter.
I should randomize the starting angle of the wheel and see if that fixes it.
I'm surprised to see that I didn't discuss this in the blog post. You're right, I should have.
QED